This commit is contained in:
Dax Raad
2026-01-16 15:13:00 -05:00
parent a4183c3b2c
commit 38f735bfc6
17 changed files with 277 additions and 118 deletions
+21
View File
@@ -0,0 +1,21 @@
import { AsyncLocalStorage } from "node:async_hooks"
export namespace Context {
export class NotFound extends Error {}
export function create<T>() {
const storage = new AsyncLocalStorage<T>()
return {
use() {
const result = storage.getStore()
if (!result) {
throw new NotFound()
}
return result
},
provide<R>(value: T, fn: () => R) {
return storage.run(value, fn)
},
}
}
}