Skip to content

Commit 2b48454

Browse files
Merge pull request #68 from haroldvandy2013/user/weiwang/response-metadata-getRange
add response metadata for DB getRange
2 parents 8b6480c + e96ff3d commit 2b48454

3 files changed

Lines changed: 22 additions & 10 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@microsoft/objectstoreprovider",
3-
"version": "0.8.0",
3+
"version": "0.8.1",
44
"description": "A cross-browser object store library",
55
"author": "Mukundan Kavanur Kidambi <mukav@microsoft.com>",
66
"scripts": {

src/IndexedDbProvider.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1347,8 +1347,9 @@ class IndexedDbIndex extends DbIndexFTSFromRangeQueries {
13471347
highRangeExclusive?: boolean,
13481348
reverseOrSortOrder?: boolean | QuerySortOrder,
13491349
limit?: number,
1350-
offset?: number
1351-
): Promise<ItemType[]> {
1350+
offset?: number,
1351+
forceDisableGetAllRecords = false
1352+
): Promise<ItemType[] & { isFromNewGetAllReverseMethod?: boolean }> {
13521353
const keyRange = attempt(() => {
13531354
return this._getKeyRangeForRange(
13541355
keyLowRange,
@@ -1373,7 +1374,10 @@ class IndexedDbIndex extends DbIndexFTSFromRangeQueries {
13731374
return IndexedDbProvider.WrapRequest(this._store.getAll(keyRange, limit));
13741375
}
13751376

1376-
const shouldUseGetAllRecords = this.idbConfigs?.useGetAllRecordsForGetRange;
1377+
// use getAllRecords if it is allowed by config during init, and caller does not want to disable it
1378+
const shouldUseGetAllRecords =
1379+
this.idbConfigs?.useGetAllRecordsForGetRange &&
1380+
!forceDisableGetAllRecords;
13771381
if (
13781382
shouldUseGetAllRecords &&
13791383
!!this._store.getAllRecords &&
@@ -1392,7 +1396,12 @@ class IndexedDbIndex extends DbIndexFTSFromRangeQueries {
13921396

13931397
return IndexedDbProvider.WrapRequest(
13941398
this._store.getAllRecords(query_options)
1395-
);
1399+
).then((result) => {
1400+
if (!!result) {
1401+
(result as any).isFromNewGetAllReverseMethod = true;
1402+
}
1403+
return result;
1404+
});
13961405
}
13971406

13981407
const req = this._store.openCursor(keyRange, reverse ? "prev" : "next");

src/ObjectStoreProvider.ts

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,9 @@ export interface DbIndex {
143143
highRangeExclusive?: boolean,
144144
reverseOrSortOrder?: boolean | QuerySortOrder,
145145
limit?: number,
146-
offset?: number
147-
): Promise<ItemType[]>;
146+
offset?: number,
147+
forceDisableGetAllRecords?: boolean
148+
): Promise<ItemType[] & { isFromNewGetAllReverseMethod?: boolean }>;
148149
getKeysForRange(
149150
keyLowRange: KeyType,
150151
keyHighRange: KeyType,
@@ -374,8 +375,9 @@ export abstract class DbProvider {
374375
highRangeExclusive?: boolean,
375376
reverseOrSortOrder?: boolean | QuerySortOrder,
376377
limit?: number,
377-
offset?: number
378-
): Promise<ItemType[]> {
378+
offset?: number,
379+
forceDisableGetAllRecords?: boolean
380+
): Promise<ItemType[] & { isFromNewGetAllReverseMethod?: boolean }> {
379381
return this._getStoreIndexTransaction(storeName, false, indexName).then(
380382
(index) => {
381383
return index.getRange(
@@ -385,7 +387,8 @@ export abstract class DbProvider {
385387
highRangeExclusive,
386388
reverseOrSortOrder,
387389
limit,
388-
offset
390+
offset,
391+
forceDisableGetAllRecords
389392
);
390393
}
391394
);

0 commit comments

Comments
 (0)