diff options
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); |