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:
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>;