From 634e2bb2fb9afdff85cad24755fb6fcae100cbfd Mon Sep 17 00:00:00 2001 From: Trent Larson Date: Sun, 25 May 2025 01:06:31 -0600 Subject: [PATCH] try absurd-sql, which fails in browser with: SyntaxError: Cannot use import statement outside a module (at registerSQLWorker.js... --- src/registerSQLWorker.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/registerSQLWorker.js diff --git a/src/registerSQLWorker.js b/src/registerSQLWorker.js new file mode 100644 index 00000000..68b9ac4b --- /dev/null +++ b/src/registerSQLWorker.js @@ -0,0 +1,28 @@ +import initSqlJs from '@jlongster/sql.js'; +import { SQLiteFS } from 'absurd-sql'; +import IndexedDBBackend from 'absurd-sql/dist/indexeddb-backend'; + +async function run() { + console.log("----- initSqlJs"); + let SQL = await initSqlJs({ locateFile: file => file }); + let sqlFS = new SQLiteFS(SQL.FS, new IndexedDBBackend()); + SQL.register_for_idb(sqlFS); + + SQL.FS.mkdir('/sql'); + SQL.FS.mount(sqlFS, {}, '/sql'); + + const path = '/sql/db.sqlite'; + if (typeof SharedArrayBuffer === 'undefined') { + let stream = SQL.FS.open(path, 'a+'); + await stream.node.contents.readIfFallback(); + SQL.FS.close(stream); + } + + let db = new SQL.Database(path, { filename: true }); + // You might want to try `PRAGMA page_size=8192;` too! + db.exec(` + PRAGMA journal_mode=MEMORY; + `); + console.log("----- db", db); +} +run();