import { AsyncLocalStorage } from "node:async_hooks"; export function createContext() { const storage = new AsyncLocalStorage(); return { use() { const result = storage.getStore(); if (!result) { throw new Error("No context available"); } return result; }, provide(value: T, fn: () => R) { return storage.run(value, fn); }, }; }