diff options
Diffstat (limited to 'ext/js/data/database.js')
-rw-r--r-- | ext/js/data/database.js | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/ext/js/data/database.js b/ext/js/data/database.js index e8575be2..7f37347b 100644 --- a/ext/js/data/database.js +++ b/ext/js/data/database.js @@ -194,7 +194,8 @@ export class Database { request.onsuccess = (e) => { const cursor = /** @type {IDBRequest<?IDBCursorWithValue>} */ (e.target).result; if (cursor) { - const {value} = cursor; + /** @type {TResult} */ + const value = cursor.value; if (noPredicate || predicate(value, predicateArg)) { resolve(value, data); } else { @@ -353,7 +354,9 @@ export class Database { for (const {version, stores} of upgrades) { if (oldVersion >= version) { continue; } - for (const [objectStoreName, {primaryKey, indices}] of Object.entries(stores)) { + /** @type {[objectStoreName: string, value: import('database').StoreDefinition][]} */ + const entries = Object.entries(stores); + for (const [objectStoreName, {primaryKey, indices}] of entries) { const existingObjectStoreNames = transaction.objectStoreNames || db.objectStoreNames; const objectStore = ( this._listContains(existingObjectStoreNames, objectStoreName) ? @@ -394,8 +397,14 @@ export class Database { */ _getAllFast(objectStoreOrIndex, query, onSuccess, onReject, data) { const request = objectStoreOrIndex.getAll(query); - request.onerror = (e) => onReject(/** @type {IDBRequest<import('core').SafeAny[]>} */ (e.target).error, data); - request.onsuccess = (e) => onSuccess(/** @type {IDBRequest<import('core').SafeAny[]>} */ (e.target).result, data); + request.onerror = (e) => { + const target = /** @type {IDBRequest<TResult[]>} */ (e.target); + onReject(target.error, data); + }; + request.onsuccess = (e) => { + const target = /** @type {IDBRequest<TResult[]>} */ (e.target); + onSuccess(target.result, data); + }; } /** @@ -415,7 +424,9 @@ export class Database { request.onsuccess = (e) => { const cursor = /** @type {IDBRequest<?IDBCursorWithValue>} */ (e.target).result; if (cursor) { - results.push(cursor.value); + /** @type {TResult} */ + const value = cursor.value; + results.push(value); cursor.continue(); } else { onSuccess(results, data); |