diff --git a/src/workers/sqlite.ts b/src/workers/sqlite.ts index 6e71823..22f39e3 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 e271d67..69acf6f 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]>) => {