taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit 0308290a128d29792225d7b2f4d2e22cb5d42f72
parent 1edc144b3595ae1ab6b8af7a43d26b811b2c2623
Author: Florian Dold <florian@dold.me>
Date:   Tue, 23 Apr 2024 03:12:56 +0200

wallet-core: allow labeling transactions

Diffstat:
Mpackages/taler-wallet-core/src/observable-wrappers.ts | 20+++++++++++---------
Mpackages/taler-wallet-core/src/query.ts | 2++
2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/packages/taler-wallet-core/src/observable-wrappers.ts b/packages/taler-wallet-core/src/observable-wrappers.ts @@ -173,21 +173,21 @@ export class ObservableDbAccess<StoreMap> implements DbAccess<StoreMap> { const location = getCallerInfo(); this.oc.observe({ type: ObservabilityEventType.DbQueryStart, - name: "<unknown>", + name: options.label ?? "<unknown>", location, }); try { const ret = await this.impl.runAllStoresReadOnlyTx(options, txf); this.oc.observe({ type: ObservabilityEventType.DbQueryFinishSuccess, - name: "<unknown>", + name: options.label ?? "<unknown>", location, }); return ret; } catch (e) { this.oc.observe({ type: ObservabilityEventType.DbQueryFinishError, - name: "<unknown>", + name: options.label ?? "<unknown>", location, }); throw e; @@ -197,27 +197,28 @@ export class ObservableDbAccess<StoreMap> implements DbAccess<StoreMap> { async runReadWriteTx<T, StoreNameArray extends StoreNames<StoreMap>[]>( opts: { storeNames: StoreNameArray; + label?: string; }, txf: (tx: DbReadWriteTransaction<StoreMap, StoreNameArray>) => Promise<T>, ): Promise<T> { const location = getCallerInfo(); this.oc.observe({ type: ObservabilityEventType.DbQueryStart, - name: "<unknown>", + name: opts.label ?? "<unknown>", location, }); try { const ret = await this.impl.runReadWriteTx(opts, txf); this.oc.observe({ type: ObservabilityEventType.DbQueryFinishSuccess, - name: "<unknown>", + name: opts.label ?? "<unknown>", location, }); return ret; } catch (e) { this.oc.observe({ type: ObservabilityEventType.DbQueryFinishError, - name: "<unknown>", + name: opts.label ?? "<unknown>", location, }); throw e; @@ -227,6 +228,7 @@ export class ObservableDbAccess<StoreMap> implements DbAccess<StoreMap> { async runReadOnlyTx<T, StoreNameArray extends StoreNames<StoreMap>[]>( opts: { storeNames: StoreNameArray; + label?: string; }, txf: (tx: DbReadOnlyTransaction<StoreMap, StoreNameArray>) => Promise<T>, ): Promise<T> { @@ -234,20 +236,20 @@ export class ObservableDbAccess<StoreMap> implements DbAccess<StoreMap> { try { this.oc.observe({ type: ObservabilityEventType.DbQueryStart, - name: "<unknown>", + name: opts.label ?? "<unknown>", location, }); const ret = await this.impl.runReadOnlyTx(opts, txf); this.oc.observe({ type: ObservabilityEventType.DbQueryFinishSuccess, - name: "<unknown>", + name: opts.label ?? "<unknown>", location, }); return ret; } catch (e) { this.oc.observe({ type: ObservabilityEventType.DbQueryFinishError, - name: "<unknown>", + name: opts.label ?? "<unknown>", location, }); throw e; diff --git a/packages/taler-wallet-core/src/query.ts b/packages/taler-wallet-core/src/query.ts @@ -821,6 +821,7 @@ export interface DbAccess<StoreMap> { runReadWriteTx<T, StoreNameArray extends Array<StoreNames<StoreMap>>>( opts: { storeNames: StoreNameArray; + label?: string; }, txf: (tx: DbReadWriteTransaction<StoreMap, StoreNameArray>) => Promise<T>, ): Promise<T>; @@ -828,6 +829,7 @@ export interface DbAccess<StoreMap> { runReadOnlyTx<T, StoreNameArray extends Array<StoreNames<StoreMap>>>( opts: { storeNames: StoreNameArray; + label?: string; }, txf: (tx: DbReadOnlyTransaction<StoreMap, StoreNameArray>) => Promise<T>, ): Promise<T>;