From 183e0911b76025a1f2a82e979d9834fec2131d0e Mon Sep 17 00:00:00 2001 From: Frank Date: Fri, 8 Aug 2025 13:22:54 -0400 Subject: wip: gateway --- cloud/core/src/context.ts | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 cloud/core/src/context.ts (limited to 'cloud/core/src/context.ts') diff --git a/cloud/core/src/context.ts b/cloud/core/src/context.ts new file mode 100644 index 000000000..c2ca6a313 --- /dev/null +++ b/cloud/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