aboutsummaryrefslogtreecommitdiff
path: root/packages/idb-bridge
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2022-10-08 20:56:57 +0200
committerFlorian Dold <florian@dold.me>2022-10-08 23:07:07 +0200
commit526f4eba9554f27e33afb0e02d19d870825b038c (patch)
treec35e41a20a3bc90da3beb81fa7831505ee64cfee /packages/idb-bridge
parenteace0e0e7aad9113af758b829fffd873826e36e3 (diff)
downloadwallet-core-526f4eba9554f27e33afb0e02d19d870825b038c.tar.xz
wallet-core: Clean up merchant payments DB schema
Diffstat (limited to 'packages/idb-bridge')
-rw-r--r--packages/idb-bridge/src/MemoryBackend.ts26
1 files changed, 19 insertions, 7 deletions
diff --git a/packages/idb-bridge/src/MemoryBackend.ts b/packages/idb-bridge/src/MemoryBackend.ts
index 3919cdf97..f40f1c98b 100644
--- a/packages/idb-bridge/src/MemoryBackend.ts
+++ b/packages/idb-bridge/src/MemoryBackend.ts
@@ -378,9 +378,9 @@ export class MemoryBackend implements Backend {
}
}
- private makeObjectStoreMap(
- database: Database,
- ): { [currentName: string]: ObjectStoreMapEntry } {
+ private makeObjectStoreMap(database: Database): {
+ [currentName: string]: ObjectStoreMapEntry;
+ } {
let map: { [currentName: string]: ObjectStoreMapEntry } = {};
for (let objectStoreName in database.committedObjectStores) {
const store = database.committedObjectStores[objectStoreName];
@@ -1088,9 +1088,8 @@ export class MemoryBackend implements Backend {
if (!existingIndexRecord) {
throw Error("db inconsistent: expected index entry missing");
}
- const newPrimaryKeys = existingIndexRecord.primaryKeys.without(
- primaryKey,
- );
+ const newPrimaryKeys =
+ existingIndexRecord.primaryKeys.without(primaryKey);
if (newPrimaryKeys.size === 0) {
index.modifiedData = indexData.without(indexKey);
} else {
@@ -1357,7 +1356,20 @@ export class MemoryBackend implements Backend {
// Remove old index entry first!
if (oldStoreRecord) {
- this.deleteFromIndex(index, key, oldStoreRecord.value, indexProperties);
+ try {
+ this.deleteFromIndex(
+ index,
+ key,
+ oldStoreRecord.value,
+ indexProperties,
+ );
+ } catch (e) {
+ if (e instanceof DataError) {
+ // Do nothing
+ } else {
+ throw e;
+ }
+ }
}
try {
this.insertIntoIndex(index, key, value, indexProperties);