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