map/tests/browser-nested-worker-node-shim.mjs

19 lines
662 B
JavaScript
Raw Normal View History

2026-08-10 13:59:33 +09:00
import { parentPort, workerData } from "node:worker_threads";
if (!parentPort) throw new Error("browser-nested-worker-node-shim requires a parent port.");
if (!workerData?.moduleUrl) throw new Error("browser-nested-worker-node-shim requires moduleUrl.");
globalThis.self = {
onmessage: null,
postMessage(message, transfer = []) {
parentPort.postMessage(message, transfer);
},
};
await import(workerData.moduleUrl);
if (typeof globalThis.self.onmessage !== "function") {
throw new Error(`Nested browser worker module did not install onmessage: ${workerData.moduleUrl}`);
}
parentPort.on("message", (data) => globalThis.self.onmessage({ data }));