From 1adaa927e6de81518686eefeba2cfa259641ff5b Mon Sep 17 00:00:00 2001 From: Anton Harniakou Date: Thu, 5 Jun 2025 09:59:20 +0300 Subject: [PATCH 1/2] Add tests --- bindings/javascript/__test__/better-sqlite3.spec.mjs | 6 ++++++ bindings/javascript/__test__/limbo.spec.mjs | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/bindings/javascript/__test__/better-sqlite3.spec.mjs b/bindings/javascript/__test__/better-sqlite3.spec.mjs index 247eeda33..a271648ba 100644 --- a/bindings/javascript/__test__/better-sqlite3.spec.mjs +++ b/bindings/javascript/__test__/better-sqlite3.spec.mjs @@ -95,6 +95,12 @@ test("Test exec()", async (t) => { } }); +test("Test Statement.database gets the database object", async t => { + const [db] = await connect(":memory:"); + let stmt = db.prepare("SELECT 1"); + t.is(stmt.database, db); +}); + const connect = async (path) => { const db = new Database(path); diff --git a/bindings/javascript/__test__/limbo.spec.mjs b/bindings/javascript/__test__/limbo.spec.mjs index df892398f..51cf204ec 100644 --- a/bindings/javascript/__test__/limbo.spec.mjs +++ b/bindings/javascript/__test__/limbo.spec.mjs @@ -155,6 +155,12 @@ test("Test exec()", async (t) => { } }); +test("Test Statement.database gets the database object", async t => { + const [db] = await connect(":memory:"); + let stmt = db.prepare("SELECT 1"); + t.is(stmt.database, db); +}); + const connect = async (path) => { const db = new Database(path); return [db]; From 90f34643c3c288a513d6ef61a4cde4ac8e320c50 Mon Sep 17 00:00:00 2001 From: Anton Harniakou Date: Thu, 5 Jun 2025 10:00:06 +0300 Subject: [PATCH 2/2] Implement .database property --- bindings/javascript/wrapper.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/bindings/javascript/wrapper.js b/bindings/javascript/wrapper.js index c25b7bc97..7698a8cef 100644 --- a/bindings/javascript/wrapper.js +++ b/bindings/javascript/wrapper.js @@ -32,7 +32,7 @@ class Database { */ prepare(sql) { try { - return new Statement(this.db.prepare(sql)); + return new Statement(this.db.prepare(sql), this); } catch (err) { throw convertError(err); } @@ -148,8 +148,9 @@ class Database { * Statement represents a prepared SQL statement that can be executed. */ class Statement { - constructor(stmt) { + constructor(stmt, database) { this.stmt = stmt; + this.db = database; } /** @@ -176,6 +177,10 @@ class Statement { throw new Error("not implemented"); } + get database() { + return this.db; + } + /** * Executes the SQL statement and returns an info object. */