diff --git a/src/services/AbsurdSqlDatabaseService.ts b/src/services/AbsurdSqlDatabaseService.ts index 4a810e7d..30c902c4 100644 --- a/src/services/AbsurdSqlDatabaseService.ts +++ b/src/services/AbsurdSqlDatabaseService.ts @@ -19,11 +19,11 @@ interface AbsurdSqlDatabase { ) => Promise<{ changes: number; lastId?: number }>; } -interface QueuedOperation { +interface QueuedOperation { type: "run" | "query" | "getOneRow" | "getAll"; sql: string; params: unknown[]; - resolve: (value: unknown) => void; + resolve: (value: T) => void; reject: (reason: unknown) => void; } @@ -32,7 +32,7 @@ class AbsurdSqlDatabaseService implements DatabaseService { private db: AbsurdSqlDatabase | null; private initialized: boolean; private initializationPromise: Promise | null = null; - private operationQueue: QueuedOperation[] = []; + private operationQueue: Array> = []; private isProcessingQueue: boolean = false; private constructor() { @@ -157,18 +157,19 @@ class AbsurdSqlDatabaseService implements DatabaseService { } private async queueOperation( - type: QueuedOperation["type"], + type: QueuedOperation["type"], sql: string, params: unknown[] = [], ): Promise { - return new Promise((resolve, reject) => { - this.operationQueue.push({ + return new Promise((resolve, reject) => { + const operation: QueuedOperation = { type, sql, params, resolve, reject, - }); + }; + this.operationQueue.push(operation); // If we're already initialized, start processing the queue if (this.initialized && this.db) {