diff options
Diffstat (limited to 'packages/taler-wallet-core/src/util/query.ts')
-rw-r--r-- | packages/taler-wallet-core/src/util/query.ts | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/packages/taler-wallet-core/src/util/query.ts b/packages/taler-wallet-core/src/util/query.ts index 71f80f8aa..1c3ff6a2a 100644 --- a/packages/taler-wallet-core/src/util/query.ts +++ b/packages/taler-wallet-core/src/util/query.ts @@ -239,7 +239,7 @@ class ResultStream<T> { export function openDatabase( idbFactory: IDBFactory, databaseName: string, - databaseVersion: number, + databaseVersion: number | undefined, onVersionChange: () => void, onUpgradeNeeded: ( db: IDBDatabase, @@ -257,7 +257,7 @@ export function openDatabase( req.onsuccess = (e) => { req.result.onversionchange = (evt: IDBVersionChangeEvent) => { logger.info( - `handling live db version change from ${evt.oldVersion} to ${evt.newVersion}`, + `handling versionchange on ${databaseName} from ${evt.oldVersion} to ${evt.newVersion}`, ); req.result.close(); onVersionChange(); @@ -274,6 +274,9 @@ export function openDatabase( if (!transaction) { throw Error("no transaction handle available in upgrade handler"); } + logger.info( + `handling upgradeneeded event on ${databaseName} from ${e.oldVersion} to ${e.newVersion}`, + ); onUpgradeNeeded(db, e.oldVersion, newVersion, transaction); }; }); @@ -376,8 +379,8 @@ export interface InsertResponse { export interface StoreReadWriteAccessor<RecordType, IndexMap> { get(key: IDBValidKey): Promise<RecordType | undefined>; iter(query?: IDBValidKey): ResultStream<RecordType>; - put(r: RecordType): Promise<InsertResponse>; - add(r: RecordType): Promise<InsertResponse>; + put(r: RecordType, key?: IDBValidKey): Promise<InsertResponse>; + add(r: RecordType, key?: IDBValidKey): Promise<InsertResponse>; delete(key: IDBValidKey): Promise<void>; indexes: GetIndexReadWriteAccess<RecordType, IndexMap>; } @@ -652,15 +655,15 @@ function makeWriteContext( const req = tx.objectStore(storeName).openCursor(query); return new ResultStream<any>(req); }, - async add(r) { - const req = tx.objectStore(storeName).add(r); + async add(r, k) { + const req = tx.objectStore(storeName).add(r, k); const key = await requestToPromise(req); return { key: key, }; }, - async put(r) { - const req = tx.objectStore(storeName).put(r); + async put(r, k) { + const req = tx.objectStore(storeName).put(r, k); const key = await requestToPromise(req); return { key: key, |