diff options
Diffstat (limited to 'packages/taler-wallet-core/src/observable-wrappers.ts')
-rw-r--r-- | packages/taler-wallet-core/src/observable-wrappers.ts | 51 |
1 files changed, 32 insertions, 19 deletions
diff --git a/packages/taler-wallet-core/src/observable-wrappers.ts b/packages/taler-wallet-core/src/observable-wrappers.ts index b36f41611..717de41ca 100644 --- a/packages/taler-wallet-core/src/observable-wrappers.ts +++ b/packages/taler-wallet-core/src/observable-wrappers.ts @@ -25,7 +25,6 @@ import { IDBDatabase } from "@gnu-taler/idb-bridge"; import { ObservabilityContext, ObservabilityEventType, - RetryLoopOpts, } from "@gnu-taler/taler-util"; import { TaskIdStr } from "./common.js"; import { TalerCryptoInterface } from "./index.js"; @@ -61,17 +60,22 @@ export class ObservableTaskScheduler implements TaskScheduler { } } + shutdown(): Promise<void> { + return this.impl.shutdown(); + } + getActiveTasks(): TaskIdStr[] { return this.impl.getActiveTasks(); } - ensureRunning(): void { - return this.impl.ensureRunning(); + isIdle(): boolean { + return this.impl.isIdle(); } - run(opts?: RetryLoopOpts | undefined): Promise<void> { - return this.impl.run(opts); + ensureRunning(): Promise<void> { + return this.impl.ensureRunning(); } + startShepherdTask(taskId: TaskIdStr): void { this.declareDep(taskId); this.oc.observe({ @@ -80,6 +84,7 @@ export class ObservableTaskScheduler implements TaskScheduler { }); return this.impl.startShepherdTask(taskId); } + stopShepherdTask(taskId: TaskIdStr): void { this.declareDep(taskId); this.oc.observe({ @@ -88,6 +93,7 @@ export class ObservableTaskScheduler implements TaskScheduler { }); return this.impl.stopShepherdTask(taskId); } + resetTaskRetries(taskId: TaskIdStr): Promise<void> { this.declareDep(taskId); if (this.taskDepCache.size > 500) { @@ -99,7 +105,8 @@ export class ObservableTaskScheduler implements TaskScheduler { }); return this.impl.resetTaskRetries(taskId); } - reload(): void { + + async reload(): Promise<void> { return this.impl.reload(); } } @@ -170,21 +177,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; @@ -192,27 +199,30 @@ export class ObservableDbAccess<StoreMap> implements DbAccess<StoreMap> { } async runReadWriteTx<T, StoreNameArray extends StoreNames<StoreMap>[]>( - storeNames: StoreNameArray, + 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(storeNames, txf); + 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; @@ -220,27 +230,30 @@ export class ObservableDbAccess<StoreMap> implements DbAccess<StoreMap> { } async runReadOnlyTx<T, StoreNameArray extends StoreNames<StoreMap>[]>( - storeNames: StoreNameArray, + opts: { + storeNames: StoreNameArray; + label?: string; + }, txf: (tx: DbReadOnlyTransaction<StoreMap, StoreNameArray>) => Promise<T>, ): Promise<T> { const location = getCallerInfo(); try { this.oc.observe({ type: ObservabilityEventType.DbQueryStart, - name: "<unknown>", + name: opts.label ?? "<unknown>", location, }); - const ret = await this.impl.runReadOnlyTx(storeNames, txf); + 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; |