with-instance.ts 467 B

123456789101112
  1. import { AppRuntime } from "@/effect/app-runtime"
  2. import { context } from "./instance-context"
  3. import { InstanceStore } from "./instance-store"
  4. export async function provide<R>(input: { directory: string; fn: () => R }): Promise<R> {
  5. const ctx = await AppRuntime.runPromise(
  6. InstanceStore.Service.use((store) => store.load({ directory: input.directory })),
  7. )
  8. return context.provide(ctx, () => input.fn())
  9. }
  10. export * as WithInstance from "./with-instance"