diff options
author | Florian Dold <florian.dold@gmail.com> | 2019-11-21 10:43:40 +0100 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2019-11-21 10:43:40 +0100 |
commit | f797f16e2f5b6ccfa5b1301becc07302ab2131a2 (patch) | |
tree | 407ffc0592b32c044a561467f60b95540a1834c9 /packages/idb-bridge/src/MemoryBackend.ts | |
parent | 035b3fdae2961bd0b1d48e8119a64f4d340cd696 (diff) | |
download | wallet-core-f797f16e2f5b6ccfa5b1301becc07302ab2131a2.tar.xz |
improve error reporting
Diffstat (limited to 'packages/idb-bridge/src/MemoryBackend.ts')
-rw-r--r-- | packages/idb-bridge/src/MemoryBackend.ts | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/packages/idb-bridge/src/MemoryBackend.ts b/packages/idb-bridge/src/MemoryBackend.ts index bb13a0223..b19c25cf0 100644 --- a/packages/idb-bridge/src/MemoryBackend.ts +++ b/packages/idb-bridge/src/MemoryBackend.ts @@ -32,6 +32,7 @@ import { InvalidStateError, InvalidAccessError, ConstraintError, + DataError, } from "./util/errors"; import BTree, { ISortedMapF } from "./tree/b+tree"; import compareKeys from "./util/cmp"; @@ -1386,11 +1387,27 @@ export class MemoryBackend implements Backend { ); } let indexData = index.modifiedData || index.originalData; - const indexKeys = getIndexKeys( - value, - indexProperties.keyPath, - indexProperties.multiEntry, - ); + let indexKeys; + try { + indexKeys = getIndexKeys( + value, + indexProperties.keyPath, + indexProperties.multiEntry, + ); + } catch (e) { + if (e instanceof DataError) { + const n = index.modifiedName || index.originalName; + const p = JSON.stringify(indexProperties.keyPath); + const m = `Failed to extract index keys from index ${n} for keyPath ${p}.`; + if (this.enableTracing) { + console.error(m); + console.error("value was", value); + } + throw new DataError(m); + } else { + throw e; + } + } for (const indexKey of indexKeys) { const existingRecord = indexData.get(indexKey); if (existingRecord) { |