From ceef90e1501bdfca6e441b762372144050a9389c Mon Sep 17 00:00:00 2001 From: Thomas Steiner Date: Tue, 17 Oct 2023 13:34:48 +0200 Subject: [PATCH 1/6] Node support test --- demo/node.js | 44 +++++++++++++++++++++++++++++ index.mjs | 2 ++ sqlite-wasm/jswasm/sqlite3-node.mjs | 2 +- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 demo/node.js diff --git a/demo/node.js b/demo/node.js new file mode 100644 index 0000000..5b2ce63 --- /dev/null +++ b/demo/node.js @@ -0,0 +1,44 @@ +import { sqlite3InitModuleNode } from '../index.mjs'; + +const log = (...args) => console.log(...args); +const error = (...args) => console.error(...args); + +const start = function (sqlite3) { + log('Running SQLite3 version', sqlite3.version.libVersion); + + const db = new sqlite3.oo1.DB('./local', 'cw'); + + try { + log('Creating a table...'); + db.exec('CREATE TABLE IF NOT EXISTS t(a,b)'); + log('Insert some data using exec()...'); + for (let i = 20; i <= 25; ++i) { + db.exec({ + sql: 'INSERT INTO t(a,b) VALUES (?,?)', + bind: [i, i * 2], + }); + } + log('Query data with exec()...'); + db.exec({ + sql: 'SELECT a FROM t ORDER BY a LIMIT 3', + callback: (row) => { + log(row); + }, + }); + } finally { + db.close(); + } +}; + +log('Loading and initializing SQLite3 module...'); +sqlite3InitModule({ + print: log, + printErr: error, +}).then((sqlite3) => { + log('Done initializing. Running demo...'); + try { + start(sqlite3); + } catch (err) { + error(err.name, err.message); + } +}); diff --git a/index.mjs b/index.mjs index 0365b54..a94f2af 100644 --- a/index.mjs +++ b/index.mjs @@ -1,3 +1,5 @@ import { default as sqlite3InitModule } from './sqlite-wasm/jswasm/sqlite3-bundler-friendly.mjs'; +import { default as sqlite3InitModuleNode } from './sqlite-wasm/jswasm/sqlite3-node.mjs'; export default sqlite3InitModule; +export { sqlite3InitModuleNode }; diff --git a/sqlite-wasm/jswasm/sqlite3-node.mjs b/sqlite-wasm/jswasm/sqlite3-node.mjs index 6f61a53..031b44d 100644 --- a/sqlite-wasm/jswasm/sqlite3-node.mjs +++ b/sqlite-wasm/jswasm/sqlite3-node.mjs @@ -11998,7 +11998,7 @@ var sqlite3InitModule = (() => { type: 'sqlite3-api', result: 'worker1-ready', }); - }.bind({ self, sqlite3 }); + }.bind({ globalThis, sqlite3 }); }); ('use strict'); From 31fcc755b833cb60d40c4aef69e9607ae12ea3d7 Mon Sep 17 00:00:00 2001 From: Thomas Steiner Date: Fri, 10 Nov 2023 10:25:49 +0100 Subject: [PATCH 2/6] Create separate Node entry point --- index.mjs | 2 -- node.mjs | 3 +++ package.json | 5 ++++- 3 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 node.mjs diff --git a/index.mjs b/index.mjs index a94f2af..0365b54 100644 --- a/index.mjs +++ b/index.mjs @@ -1,5 +1,3 @@ import { default as sqlite3InitModule } from './sqlite-wasm/jswasm/sqlite3-bundler-friendly.mjs'; -import { default as sqlite3InitModuleNode } from './sqlite-wasm/jswasm/sqlite3-node.mjs'; export default sqlite3InitModule; -export { sqlite3InitModuleNode }; diff --git a/node.mjs b/node.mjs new file mode 100644 index 0000000..b62c524 --- /dev/null +++ b/node.mjs @@ -0,0 +1,3 @@ +import { default as sqlite3InitModuleNode } from './sqlite-wasm/jswasm/sqlite3-node.mjs'; + +export { sqlite3InitModuleNode }; diff --git a/package.json b/package.json index 1428a84..c34f8fc 100644 --- a/package.json +++ b/package.json @@ -14,10 +14,12 @@ "origin-private-file-system" ], "main": "index.mjs", + "node": "node.mjs", "type": "module", "files": [ "index.d.ts", "index.mjs", + "node.mjs", "sqlite-wasm/" ], "types": "index.d.ts", @@ -26,7 +28,8 @@ "types": "./index.d.ts", "import": "./index.mjs", "main": "./index.mjs", - "browser": "./index.mjs" + "browser": "./index.mjs", + "node": "./node.mjs" }, "./package.json": "./package.json" }, From 82f79f21dd72b1bb2bdd5a252678a12907c1591b Mon Sep 17 00:00:00 2001 From: Thomas Steiner Date: Fri, 10 Nov 2023 10:28:38 +0100 Subject: [PATCH 3/6] Update import in demo --- demo/node.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demo/node.js b/demo/node.js index 5b2ce63..8099caf 100644 --- a/demo/node.js +++ b/demo/node.js @@ -1,4 +1,4 @@ -import { sqlite3InitModuleNode } from '../index.mjs'; +import { sqlite3InitModuleNode } from '../node.mjs'; const log = (...args) => console.log(...args); const error = (...args) => console.error(...args); From 75a9510eb70bc08b91da63b1d8a9cc98bab6d9d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Sj=C3=B8rup?= Date: Sun, 12 Nov 2023 10:53:47 +0100 Subject: [PATCH 4/6] move node before import in package.json --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 29b4ef4..f0cfee2 100644 --- a/package.json +++ b/package.json @@ -26,10 +26,10 @@ "exports": { ".": { "types": "./index.d.ts", + "node": "./node.mjs", "import": "./index.mjs", "main": "./index.mjs", - "browser": "./index.mjs", - "node": "./node.mjs" + "browser": "./index.mjs" }, "./package.json": "./package.json" }, From ce9e7fdb989490087847d0fe06c662fa9a99ffb2 Mon Sep 17 00:00:00 2001 From: Thomas Steiner Date: Mon, 13 Nov 2023 13:31:05 +0100 Subject: [PATCH 5/6] Export default function --- node.mjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node.mjs b/node.mjs index b62c524..421cac5 100644 --- a/node.mjs +++ b/node.mjs @@ -1,3 +1,3 @@ import { default as sqlite3InitModuleNode } from './sqlite-wasm/jswasm/sqlite3-node.mjs'; -export { sqlite3InitModuleNode }; +export default sqlite3InitModuleNode; From 2cd905c03668b6cce82729d2f6cc94f0b9196d2a Mon Sep 17 00:00:00 2001 From: Thomas Steiner Date: Tue, 9 Jan 2024 11:34:06 +0100 Subject: [PATCH 6/6] Transient database Node.js support --- demo/{node.js => node.mjs} | 2 +- node.mjs | 4 ++-- package.json | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) rename demo/{node.js => node.mjs} (94%) diff --git a/demo/node.js b/demo/node.mjs similarity index 94% rename from demo/node.js rename to demo/node.mjs index 8099caf..1c8f32b 100644 --- a/demo/node.js +++ b/demo/node.mjs @@ -1,4 +1,4 @@ -import { sqlite3InitModuleNode } from '../node.mjs'; +import sqlite3InitModule from '../node.mjs'; const log = (...args) => console.log(...args); const error = (...args) => console.error(...args); diff --git a/node.mjs b/node.mjs index 421cac5..a0b6e1d 100644 --- a/node.mjs +++ b/node.mjs @@ -1,3 +1,3 @@ -import { default as sqlite3InitModuleNode } from './sqlite-wasm/jswasm/sqlite3-node.mjs'; +import { default as sqlite3InitModule } from './sqlite-wasm/jswasm/sqlite3-node.mjs'; -export default sqlite3InitModuleNode; +export default sqlite3InitModule; diff --git a/package.json b/package.json index b429b7a..abfd521 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "clean": "shx rm -rf sqlite-wasm", "build": "npm run clean && node bin/index.js", "start": "npx http-server --coop", + "start:node": "cd demo && node node.mjs", "fix": "npx prettier . --write", "prepare": "npm run build && npm run fix && npm run publint", "deploy": "npm run prepare && git add . && git commit -am 'New release' && git push && npm publish --access public"