diff options
author | Florian Dold <florian@dold.me> | 2024-02-13 11:38:12 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2024-02-13 11:38:12 +0100 |
commit | 8b089c98d46bd446ad19731c2bac4a1cf010e17f (patch) | |
tree | 550aacc076d067d4193fb5c0f38d0876c3a9f470 | |
parent | 1d38c8e57dff7dd60e600d71e48664d72d544fdd (diff) | |
download | wallet-core-8b089c98d46bd446ad19731c2bac4a1cf010e17f.tar.gz wallet-core-8b089c98d46bd446ad19731c2bac4a1cf010e17f.tar.bz2 wallet-core-8b089c98d46bd446ad19731c2bac4a1cf010e17f.zip |
wallet-core: implement getAll for object stores
-rw-r--r-- | packages/taler-wallet-core/src/util/query.ts | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/packages/taler-wallet-core/src/util/query.ts b/packages/taler-wallet-core/src/util/query.ts index 8274e252b..d96a03c61 100644 --- a/packages/taler-wallet-core/src/util/query.ts +++ b/packages/taler-wallet-core/src/util/query.ts @@ -23,20 +23,19 @@ /** * Imports. */ -import { openPromise } from "./promiseUtils.js"; import { - IDBRequest, - IDBTransaction, - IDBValidKey, + IDBCursor, IDBDatabase, IDBFactory, - IDBVersionChangeEvent, - IDBCursor, IDBKeyPath, IDBKeyRange, - IDBOpenDBRequest, + IDBRequest, + IDBTransaction, + IDBValidKey, + IDBVersionChangeEvent, } from "@gnu-taler/idb-bridge"; -import { Codec, Logger, j2s } from "@gnu-taler/taler-util"; +import { Codec, Logger } from "@gnu-taler/taler-util"; +import { openPromise } from "./promiseUtils.js"; const logger = new Logger("query.ts"); @@ -374,6 +373,10 @@ type GetIndexReadWriteAccess<RecordType, IndexMap> = { export interface StoreReadOnlyAccessor<RecordType, IndexMap> { get(key: IDBValidKey): Promise<RecordType | undefined>; + getAll( + query?: IDBKeyRange | IDBValidKey, + count?: number, + ): Promise<RecordType[]>; iter(query?: IDBValidKey): ResultStream<RecordType>; indexes: GetIndexReadOnlyAccess<RecordType, IndexMap>; } @@ -387,6 +390,10 @@ export interface InsertResponse { export interface StoreReadWriteAccessor<RecordType, IndexMap> { get(key: IDBValidKey): Promise<RecordType | undefined>; + getAll( + query?: IDBKeyRange | IDBValidKey, + count?: number, + ): Promise<RecordType[]>; iter(query?: IDBValidKey): ResultStream<RecordType>; put(r: RecordType, key?: IDBValidKey): Promise<InsertResponse>; add(r: RecordType, key?: IDBValidKey): Promise<InsertResponse>; @@ -717,6 +724,10 @@ function makeReadContext( const req = tx.objectStore(storeName).get(key); return requestToPromise(req); }, + getAll(query, count) { + const req = tx.objectStore(storeName).getAll(query, count); + return requestToPromise(req); + }, iter(query) { const req = tx.objectStore(storeName).openCursor(query); return new ResultStream<any>(req); @@ -770,6 +781,10 @@ function makeWriteContext( const req = tx.objectStore(storeName).get(key); return requestToPromise(req); }, + getAll(query, count) { + const req = tx.objectStore(storeName).getAll(query, count); + return requestToPromise(req); + }, iter(query) { const req = tx.objectStore(storeName).openCursor(query); return new ResultStream<any>(req); |