From e96ff3d304cd19d13990507c1befe88b68b35b56 Mon Sep 17 00:00:00 2001 From: weiwang Date: Thu, 12 Jun 2025 16:38:24 -0700 Subject: [PATCH] update --- package.json | 2 +- src/IndexedDbProvider.ts | 17 +++++++++++++---- src/ObjectStoreProvider.ts | 13 ++++++++----- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 6fdac0b..0d6b525 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/objectstoreprovider", - "version": "0.8.0", + "version": "0.8.1", "description": "A cross-browser object store library", "author": "Mukundan Kavanur Kidambi ", "scripts": { diff --git a/src/IndexedDbProvider.ts b/src/IndexedDbProvider.ts index 277cc30..bff3ce9 100644 --- a/src/IndexedDbProvider.ts +++ b/src/IndexedDbProvider.ts @@ -1347,8 +1347,9 @@ class IndexedDbIndex extends DbIndexFTSFromRangeQueries { highRangeExclusive?: boolean, reverseOrSortOrder?: boolean | QuerySortOrder, limit?: number, - offset?: number - ): Promise { + offset?: number, + forceDisableGetAllRecords = false + ): Promise { const keyRange = attempt(() => { return this._getKeyRangeForRange( keyLowRange, @@ -1373,7 +1374,10 @@ class IndexedDbIndex extends DbIndexFTSFromRangeQueries { return IndexedDbProvider.WrapRequest(this._store.getAll(keyRange, limit)); } - const shouldUseGetAllRecords = this.idbConfigs?.useGetAllRecordsForGetRange; + // use getAllRecords if it is allowed by config during init, and caller does not want to disable it + const shouldUseGetAllRecords = + this.idbConfigs?.useGetAllRecordsForGetRange && + !forceDisableGetAllRecords; if ( shouldUseGetAllRecords && !!this._store.getAllRecords && @@ -1392,7 +1396,12 @@ class IndexedDbIndex extends DbIndexFTSFromRangeQueries { return IndexedDbProvider.WrapRequest( this._store.getAllRecords(query_options) - ); + ).then((result) => { + if (!!result) { + (result as any).isFromNewGetAllReverseMethod = true; + } + return result; + }); } const req = this._store.openCursor(keyRange, reverse ? "prev" : "next"); diff --git a/src/ObjectStoreProvider.ts b/src/ObjectStoreProvider.ts index efd90bf..06fe9e7 100644 --- a/src/ObjectStoreProvider.ts +++ b/src/ObjectStoreProvider.ts @@ -143,8 +143,9 @@ export interface DbIndex { highRangeExclusive?: boolean, reverseOrSortOrder?: boolean | QuerySortOrder, limit?: number, - offset?: number - ): Promise; + offset?: number, + forceDisableGetAllRecords?: boolean + ): Promise; getKeysForRange( keyLowRange: KeyType, keyHighRange: KeyType, @@ -374,8 +375,9 @@ export abstract class DbProvider { highRangeExclusive?: boolean, reverseOrSortOrder?: boolean | QuerySortOrder, limit?: number, - offset?: number - ): Promise { + offset?: number, + forceDisableGetAllRecords?: boolean + ): Promise { return this._getStoreIndexTransaction(storeName, false, indexName).then( (index) => { return index.getRange( @@ -385,7 +387,8 @@ export abstract class DbProvider { highRangeExclusive, reverseOrSortOrder, limit, - offset + offset, + forceDisableGetAllRecords ); } );