UNPKG

kysely-generic-sqlite

Version:
58 lines (55 loc) 1.46 kB
// src/worker/types.ts var initEvent = "0"; var runEvent = "1"; var closeEvent = "2"; var dataEvent = "3"; var endEvent = "4"; // src/worker/utils.ts function createGenericOnMessageCallback(init, post, message) { let db; return async ([type, data1, data2, data3]) => { const ret = [type, null, null]; try { switch (type) { case initEvent: { db = await init(data1); break; } case runEvent: { ret[1] = await db.query(data1, data2, data3); break; } case closeEvent: { await db.close(); break; } case dataEvent: { if (!db.iterator) { throw new Error("streamQuery() is not supported."); } const it = db.iterator(data1, data2, data3); for await (const row of it) { post([type, row, null]); } ret[0] = endEvent; break; } default: { if (message) { const data = await message(db, type, data1, data2, data3); if (data !== void 0 && data !== null) { ret[1] = data; } } } } } catch (error) { ret[2] = error; } post(ret); }; } async function access(data) { return typeof data === "function" ? await data() : data; } export { access, closeEvent, createGenericOnMessageCallback, dataEvent, endEvent, initEvent, runEvent };