diff options
author | Florian Dold <florian@dold.me> | 2022-10-08 20:56:57 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2022-10-08 23:07:07 +0200 |
commit | 526f4eba9554f27e33afb0e02d19d870825b038c (patch) | |
tree | c35e41a20a3bc90da3beb81fa7831505ee64cfee /packages/idb-bridge/src | |
parent | eace0e0e7aad9113af758b829fffd873826e36e3 (diff) | |
download | wallet-core-526f4eba9554f27e33afb0e02d19d870825b038c.tar.xz |
wallet-core: Clean up merchant payments DB schema
Diffstat (limited to 'packages/idb-bridge/src')
-rw-r--r-- | packages/idb-bridge/src/MemoryBackend.ts | 26 |
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); |