aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-08-30 16:08:51 +0200
committerFlorian Dold <florian@dold.me>2023-08-30 16:08:51 +0200
commit53613a137df432878d62317e685bd1737dc6a6dc (patch)
tree5d170f5f07ce7f59075fa3595b40af8d68161b46
parentd19aef746c1e67deaccc7c8cefba008f2f0d46ca (diff)
downloadwallet-core-53613a137df432878d62317e685bd1737dc6a6dc.tar.xz
-only store key if necessary
-rw-r--r--packages/taler-wallet-core/src/db.ts15
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();
}
});