summaryrefslogtreecommitdiff
path: root/src/db.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/db.js')
-rw-r--r--src/db.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/db.js b/src/db.js
new file mode 100644
index 0000000..e735ab1
--- /dev/null
+++ b/src/db.js
@@ -0,0 +1,45 @@
+const fs = require("node:fs");
+const sqlite = require("./napi-sqlite.node");
+
+// const value = 8;
+// console.log(`${value} time 2 =`, sqlite.my_function(value));
+
+const CONFIG_FILE = __dirname + "/sql/config.sql";
+const MIGRATIONS_DIR = __dirname + "/sql/migrations/";
+
+let db = null;
+const init = async () => {
+ console.log({
+ sqlite,
+ });
+ console.log(`sqlite.myfn(2): ${sqlite.myfn(2)}`);
+ console.log(`sqlite.open(2): ${sqlite.open(2)}`);
+ /*
+ const config = fs.readFileSync(CONFIG_FILE, "UTF-8");
+ const migrations = fs.readdirSync(MIGRATIONS_DIR, "UTF-8");
+
+ await exec(config);
+ await exec(`
+ CREATE TABLE IF NOT EXISTS migrations (
+ filename TEXT PRIMARY KEY
+ );
+ `);
+ const done = await run(`
+ SELECT filename FROM migrations;
+ `);
+
+ // FIXME: sort
+ const pending = new Set(migrations).difference(new Set(done));
+
+ await exec("BEGIN TRANSACTION;");
+ for (const p of pending) {
+ await exec(fs.readFileSync(MIGRATIONS_DIR + p, "UTF-8"));
+ await exec(`INSERT INTO migrations (filename) VALUES (?)`, p);
+ }
+ await exec("COMMIT TRANSACTION;");
+ */
+};
+
+module.exports = {
+ init,
+};