From 4ceabdffa07b1af8d99eb73622a4d549d99ec6d2 Mon Sep 17 00:00:00 2001 From: Frank Date: Thu, 18 Sep 2025 10:59:01 -0400 Subject: wip: zen --- packages/console/core/src/context.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 packages/console/core/src/context.ts (limited to 'packages/console/core/src/context.ts') diff --git a/packages/console/core/src/context.ts b/packages/console/core/src/context.ts new file mode 100644 index 000000000..c2ca6a313 --- /dev/null +++ b/packages/console/core/src/context.ts @@ -0,0 +1,21 @@ +import { AsyncLocalStorage } from "node:async_hooks" + +export namespace Context { + export class NotFound extends Error {} + + export function create() { + const storage = new AsyncLocalStorage() + return { + use() { + const result = storage.getStore() + if (!result) { + throw new NotFound() + } + return result + }, + provide(value: T, fn: () => R) { + return storage.run(value, fn) + }, + } + } +} -- cgit v1.2.3