From 06db37640e9932f9d2595ffa7c3cefe2204326db Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Fri, 6 Aug 2021 17:15:46 +0200 Subject: perf: do bulk read --- packages/taler-wallet-core/src/util/query.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'packages/taler-wallet-core/src/util/query.ts') diff --git a/packages/taler-wallet-core/src/util/query.ts b/packages/taler-wallet-core/src/util/query.ts index b76bf6b6b..a95cbf1ff 100644 --- a/packages/taler-wallet-core/src/util/query.ts +++ b/packages/taler-wallet-core/src/util/query.ts @@ -35,6 +35,7 @@ import { IDBKeyPath, } from "@gnu-taler/idb-bridge"; import { Logger } from "@gnu-taler/taler-util"; +import { performanceNow } from "./timer.js"; const logger = new Logger("query.ts"); @@ -298,6 +299,7 @@ export function describeIndex( interface IndexReadOnlyAccessor { iter(query?: IDBValidKey): ResultStream; get(query: IDBValidKey): Promise; + getAll(query: IDBValidKey, count?: number): Promise; } type GetIndexReadOnlyAccess = { @@ -307,6 +309,7 @@ type GetIndexReadOnlyAccess = { interface IndexReadWriteAccessor { iter(query: IDBValidKey): ResultStream; get(query: IDBValidKey): Promise; + getAll(query: IDBValidKey, count?: number): Promise; } type GetIndexReadWriteAccess = { @@ -484,6 +487,10 @@ function makeReadContext( .openCursor(query); return new ResultStream(req); }, + getAll(query, count) { + const req = tx.objectStore(storeName).index(indexName).getAll(query, count); + return requestToPromise(req); + } }; } ctx[storeAlias] = { @@ -526,6 +533,10 @@ function makeWriteContext( .openCursor(query); return new ResultStream(req); }, + getAll(query, count) { + const req = tx.objectStore(storeName).index(indexName).getAll(query, count); + return requestToPromise(req); + } }; } ctx[storeAlias] = { -- cgit v1.2.3