19 lines
573 B
TypeScript
19 lines
573 B
TypeScript
import * as plugins from './logcontext.plugins.js';
|
|
import { AsyncStore } from './logcontext.classes.asyncstore.js';
|
|
|
|
export class AsyncContext {
|
|
private _context = new plugins.simpleAsyncContext.AsyncContext.Variable<AsyncStore>();
|
|
private _store = new AsyncStore();
|
|
get store() {
|
|
return this._context.get() || this._store;
|
|
}
|
|
set store(value: AsyncStore) {
|
|
this._store = value;
|
|
}
|
|
public async runScoped(functionArg: () => Promise<void>) {
|
|
await this._context.run(new AsyncStore(this.store), async () => {
|
|
await functionArg()
|
|
});
|
|
}
|
|
}
|