SqliteWorker: return query result instead of rows for query

This commit is contained in:
Alex Gleason 2023-11-15 19:23:24 -06:00
parent e601c43197
commit ae56d059b1
No known key found for this signature in database
GPG Key ID: 7211D1F99744FBB7
2 changed files with 12 additions and 2 deletions

View File

@ -1,3 +1,9 @@
interface QueryResult {
rows: unknown[];
numAffectedRows: bigint;
insertId: bigint;
}
class SqliteWorker { class SqliteWorker {
#path: string; #path: string;
#worker: Worker; #worker: Worker;
@ -23,7 +29,7 @@ class SqliteWorker {
return this.#call(['open', [this.#path]]); return this.#call(['open', [this.#path]]);
} }
async query(sql: string, params?: any): Promise<unknown[]> { async query(sql: string, params?: any): Promise<QueryResult> {
await this.ready; await this.ready;
return this.#call(['query', [sql, params]]); return this.#call(['query', [sql, params]]);
} }

View File

@ -22,7 +22,11 @@ function handleOpen(path: string): void {
} }
function handleQuery(sql: string, params: any[] = []) { 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]>) => { self.addEventListener('message', (event: MessageEvent<[string, Msg]>) => {