UNPKG

rvx

Version:

A signal based rendering library

31 lines 835 B
import { ASYNC, AsyncContext } from "../async/async-context.js"; import { captureSelf } from "../core/lifecycle.js"; export async function runAsyncTest(fn) { const teardown = []; const asyncCtx = new AsyncContext(); async function cleanup() { for (let i = teardown.length - 1; i >= 0; i--) { teardown[i](); } return asyncCtx.complete(); } try { const result = await fn({ asyncCtx, use: fn => captureSelf(dispose => { teardown.push(dispose); return ASYNC.inject(asyncCtx, fn); }), }); await cleanup(); return result; } catch (error) { try { await cleanup(); } catch { } throw error; } } //# sourceMappingURL=run-async.js.map