aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/util/query.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-core/src/util/query.ts')
-rw-r--r--packages/taler-wallet-core/src/util/query.ts19
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,