diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-08-27 03:56:19 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-08-27 03:56:19 +0200 |
commit | 8697efd2c8751717a3a3fcaf72feb7c49ebfec02 (patch) | |
tree | e41b044c85d459e9b6042aab541fd6c88470528b /src/query.ts | |
parent | 21c176a69ee04c4d59baedb79017f6c42ece22d6 (diff) | |
download | wallet-core-8697efd2c8751717a3a3fcaf72feb7c49ebfec02.tar.xz |
implement refunds
Diffstat (limited to 'src/query.ts')
-rw-r--r-- | src/query.ts | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/query.ts b/src/query.ts index dffff86eb..ee1ac2603 100644 --- a/src/query.ts +++ b/src/query.ts @@ -658,13 +658,13 @@ export class QueryRoot { /** * Get, modify and store an element inside a transaction. */ - mutate<T>(store: Store<T>, key: any, f: (v: T) => T): QueryRoot { + mutate<T>(store: Store<T>, key: any, f: (v: T|undefined) => T|undefined): QueryRoot { this.checkFinished(); const doPut = (tx: IDBTransaction) => { const reqGet = tx.objectStore(store.name).get(key); reqGet.onsuccess = () => { const r = reqGet.result; - let m: T; + let m: T|undefined; try { m = f(r); } catch (e) { @@ -674,8 +674,9 @@ export class QueryRoot { } throw e; } - - tx.objectStore(store.name).put(m); + if (m !== undefined && m !== null) { + tx.objectStore(store.name).put(m); + } }; }; this.scheduleFinish(); |