diff options
author | Florian Dold <florian@dold.me> | 2023-08-30 16:08:51 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-08-30 16:08:51 +0200 |
commit | 53613a137df432878d62317e685bd1737dc6a6dc (patch) | |
tree | 5d170f5f07ce7f59075fa3595b40af8d68161b46 | |
parent | d19aef746c1e67deaccc7c8cefba008f2f0d46ca (diff) |
-only store key if necessary
-rw-r--r-- | packages/taler-wallet-core/src/db.ts | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/packages/taler-wallet-core/src/db.ts b/packages/taler-wallet-core/src/db.ts index 2dbf5dade..ba5295dda 100644 --- a/packages/taler-wallet-core/src/db.ts +++ b/packages/taler-wallet-core/src/db.ts @@ -2772,8 +2772,10 @@ export const walletMetadataStore = { export interface DbDumpRecord { /** * Key, serialized with structuredEncapsulated. + * + * Only present for out-of-line keys (i.e. no key path). */ - key: any; + key?: any; /** * Value, serialized with structuredEncapsulated. */ @@ -2844,10 +2846,15 @@ export function exportDb(db: IDBDatabase): Promise<DbDump> { store.openCursor().addEventListener("success", (e: Event) => { const cursor = (e.target as any).result; if (cursor) { - storeDump.records.push({ - key: structuredEncapsulate(cursor.key), + const rec: DbDumpRecord = { value: structuredEncapsulate(cursor.value), - }); + }; + // Only store key if necessary, i.e. when + // the key is not stored as part of the object via + // a key path. + if (store.keyPath == null) { + rec.key = structuredEncapsulate(cursor.key); + } cursor.continue(); } }); |