From ae56d059b1494b7ef82587db71fd137c11de89bd Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 15 Nov 2023 19:23:24 -0600 Subject: [PATCH] SqliteWorker: return query result instead of rows for query --- src/workers/sqlite.ts | 8 +++++++- src/workers/sqlite.worker.ts | 6 +++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/workers/sqlite.ts b/src/workers/sqlite.ts index 6e718231..22f39e33 100644 --- a/src/workers/sqlite.ts +++ b/src/workers/sqlite.ts @@ -1,3 +1,9 @@ +interface QueryResult { + rows: unknown[]; + numAffectedRows: bigint; + insertId: bigint; +} + class SqliteWorker { #path: string; #worker: Worker; @@ -23,7 +29,7 @@ class SqliteWorker { return this.#call(['open', [this.#path]]); } - async query(sql: string, params?: any): Promise { + async query(sql: string, params?: any): Promise { await this.ready; return this.#call(['query', [sql, params]]); } diff --git a/src/workers/sqlite.worker.ts b/src/workers/sqlite.worker.ts index e271d674..69acf6fa 100644 --- a/src/workers/sqlite.worker.ts +++ b/src/workers/sqlite.worker.ts @@ -22,7 +22,11 @@ function handleOpen(path: string): void { } function handleQuery(sql: string, params: any[] = []) { - return db.prepare(sql).all(...params); + return { + rows: db.prepare(sql).all(...params), + numAffectedRows: BigInt(db.changes), + insertId: BigInt(db.lastInsertRowId), + }; } self.addEventListener('message', (event: MessageEvent<[string, Msg]>) => {