vibeguard/src/background/offscreen.ts

15 lines
679 B
TypeScript

import type { RuntimeMessage } from "../shared/types";
const worker = new Worker(chrome.runtime.getURL("inference.js"), { type: "module" });
chrome.runtime.onMessage.addListener((message: RuntimeMessage, _sender, sendResponse) => {
if (message.type !== "OFFSCREEN_INFER") return false;
const listener = (event: MessageEvent<{ results?: unknown; error?: string }>) => {
worker.removeEventListener("message", listener);
if (event.data.error) sendResponse({ error: event.data.error });
else sendResponse({ results: event.data.results });
};
worker.addEventListener("message", listener);
worker.postMessage({ requests: message.requests });
return true;
});