15 lines
679 B
TypeScript
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;
|
|
});
|