UNPKG

alinea

Version:
33 lines (31 loc) 1 kB
import { expose } from "../../chunks/chunk-RSX2DILK.js"; import "../../chunks/chunk-NZLE2WMY.js"; // src/dashboard/boot/LoadWorker.ts import { IndexEvent } from "alinea/core/db/IndexEvent"; import { IndexedDBSource } from "alinea/core/source/IndexedDBSource"; import { DashboardWorker } from "./DashboardWorker.js"; async function loadWorker(gen) { const source = new IndexedDBSource(globalThis.indexedDB, "alinea"); const worker = new DashboardWorker(source); globalThis.onconnect = (event) => { console.info("Worker connected"); const port = event.ports[0]; expose(worker, port); const listen = (event2) => { try { port.postMessage({ ...event2, type: event2.type }); } catch (error) { worker.removeEventListener(IndexEvent.type, listen); } }; worker.addEventListener(IndexEvent.type, listen); }; for await (const batch of gen) { await worker.load(batch.revision, batch.config, batch.client); } } export { loadWorker };