alinea
Version:
Headless git-based CMS
33 lines (31 loc) • 1 kB
JavaScript
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
};