Add error reporting

This commit is contained in:
2026-01-09 01:25:41 +01:00
parent 6b673a7781
commit 0c9632d627
2 changed files with 43 additions and 0 deletions

View File

@@ -20,6 +20,7 @@ export class BroadcastRenderer {
this.renderIntervalId = null;
this.scriptWorker = null;
this.scriptWorkerReady = false;
this.scriptErrorKeys = new Set();
this.obsBrowser = !!globalThis.obsstudio;
this.supportsAnimatedDecode =
@@ -388,6 +389,7 @@ export class BroadcastRenderer {
}
const offscreen = this.scriptCanvas.transferControlToOffscreen();
this.scriptWorker = new Worker("/js/broadcast/script-worker.js");
this.scriptWorker.addEventListener("message", (event) => this.handleScriptWorkerMessage(event));
this.scriptWorker.postMessage(
{
type: "init",
@@ -416,6 +418,24 @@ export class BroadcastRenderer {
});
}
handleScriptWorkerMessage(event) {
const { type, payload } = event.data || {};
if (type !== "scriptError" || !payload?.id) {
return;
}
const key = `${payload.id}:${payload.stage || "unknown"}`;
if (this.scriptErrorKeys.has(key)) {
return;
}
this.scriptErrorKeys.add(key);
const details = payload.message || "Unknown error";
if (this.showToast) {
this.showToast(`Script ${payload.id} ${payload.stage || "error"}: ${details}`, "error");
} else {
console.error(`Script ${payload.id} ${payload.stage || "error"}`, payload);
}
}
async spawnUserJavaScriptWorker(asset) {
if (!asset?.id || !asset?.url) {
return;