asyncforge
Version:
`asyncforge` allows you to remove singletons from your codebase with the use of [`AsyncLocalStorage`](https://nodejs.org/api/async_context.html#class-asynclocalstorage).
18 lines (13 loc) • 433 B
text/typescript
import { expectError, expectType } from "tsd";
import { create, memo } from ".";
import type { Store } from ".";
expectType<() => Store>(create);
const store = create();
expectType<number>(store.run(() => 42));
expectType<void>(store.enterWith());
// memo
const memoNum = memo<number>();
expectType<symbol>(memoNum.key);
expectType<void>(memoNum.set(123));
expectType<number>(memoNum());
expectError<void>(memoNum.set("wrong"));