63 lines
1.5 KiB
JavaScript
63 lines
1.5 KiB
JavaScript
import { C as Core } from './core-DnNOMtZn.js';
|
|
import { D as DummyLogger } from './logging--P0CsEu_.js';
|
|
|
|
let logger = new DummyLogger();
|
|
let core;
|
|
onmessage = async function (e) {
|
|
const promise = invoke(e.data.method, e.data.params);
|
|
if (e.data.id !== undefined) {
|
|
const result = await promise;
|
|
postMessage({
|
|
result,
|
|
id: e.data.id
|
|
});
|
|
}
|
|
};
|
|
function invoke(method, params) {
|
|
switch (method) {
|
|
case "getChanges":
|
|
return core.getChanges();
|
|
case "new":
|
|
const opts = params[1];
|
|
if (opts.logger === true) {
|
|
logger = console;
|
|
}
|
|
opts.logger = logger;
|
|
core = new Core(params[0], opts);
|
|
return;
|
|
case "init":
|
|
return core.init();
|
|
case "play":
|
|
return core.play();
|
|
case "pause":
|
|
return core.pause();
|
|
case "togglePlay":
|
|
return core.togglePlay();
|
|
case "stop":
|
|
return core.stop();
|
|
case "seek":
|
|
return core.seek(params);
|
|
case "step":
|
|
return core.step(params);
|
|
case "getCurrentTime":
|
|
return core.getCurrentTime();
|
|
case "getRemainingTime":
|
|
return core.getRemainingTime();
|
|
case "getProgress":
|
|
return core.getProgress();
|
|
case "addEventListener":
|
|
core.addEventListener(params[0], e => {
|
|
postMessage({
|
|
method: "onEvent",
|
|
params: {
|
|
name: params[0],
|
|
event: e
|
|
}
|
|
});
|
|
});
|
|
return;
|
|
default:
|
|
throw new Error(`invalid method ${method}`);
|
|
}
|
|
}
|