// This file is never loaded directly, it's loaded via a bundle. Run `deno task generate` to update. import { DB } from "./deno-sqlite/mod.ts"; let db: DB | undefined; import { compile } from "./deno-sqlite/build/sqlite.js"; const ready = compile(); globalThis.addEventListener("message", (event: MessageEvent) => { const { data } = event; // console.log("Got message", data); ready.then(() => { switch (data.type) { case "init": { try { db = new DB(data.dbPath); } catch (e: any) { // console.error("Error!!!", e, data); respondError(data.id, e); break; } respond(data.id, true); break; } case "execute": { if (!db) { respondError(data.id, new Error("Not initialized")); break; } try { db.query(data.query, data.params); respond(data.id, db.changes); } catch (e: any) { respondError(data.id, e); } break; } case "query": { if (!db) { respondError(data.id, new Error("Not initialized")); break; } try { const result = db.queryEntries(data.query, data.params); respond(data.id, result); } catch (e: any) { respondError(data.id, e); } break; } } }).catch(console.error); }); function respond(id: number, result: any) { globalThis.postMessage({ id, result }); } function respondError(id: number, error: Error) { globalThis.postMessage({ id, error: error.message }); }