From 526f4eba9554f27e33afb0e02d19d870825b038c Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sat, 8 Oct 2022 20:56:57 +0200 Subject: wallet-core: Clean up merchant payments DB schema --- packages/idb-bridge/src/MemoryBackend.ts | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'packages/idb-bridge/src') 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); -- cgit v1.2.3