1- import { InstanceRef , WorkspaceRef } from "@/effect/instance-ref"
1+ import { WorkspaceRef } from "@/effect/instance-ref"
22import { AppRuntime } from "@/effect/app-runtime"
33import { InstanceBootstrap } from "@/project/bootstrap"
4- import type { InstanceContext } from "@/project/instance"
54import { InstanceStore } from "@/project/instance-store"
65import { Effect , Layer } from "effect"
76import { HttpRouter , HttpServerResponse } from "effect/unstable/http"
@@ -23,23 +22,15 @@ function decode(input: string): string {
2322 }
2423}
2524
26- function makeInstanceContext ( store : InstanceStore . Interface , directory : string ) : Effect . Effect < InstanceContext > {
27- return store . load ( {
28- directory : decode ( directory ) ,
29- init : ( ) => AppRuntime . runPromise ( InstanceBootstrap ) ,
30- } )
31- }
32-
3325function provideInstanceContext < E > (
3426 effect : Effect . Effect < HttpServerResponse . HttpServerResponse , E > ,
3527 store : InstanceStore . Interface ,
3628) : Effect . Effect < HttpServerResponse . HttpServerResponse , E , WorkspaceRouteContext > {
3729 return Effect . gen ( function * ( ) {
3830 const route = yield * WorkspaceRouteContext
39- const ctx = yield * makeInstanceContext ( store , route . directory )
40- return yield * effect . pipe (
41- Effect . provideService ( InstanceRef , ctx ) ,
42- Effect . provideService ( WorkspaceRef , route . workspaceID ) ,
31+ return yield * store . provide (
32+ { directory : decode ( route . directory ) , init : ( ) => AppRuntime . runPromise ( InstanceBootstrap ) } ,
33+ effect . pipe ( Effect . provideService ( WorkspaceRef , route . workspaceID ) ) ,
4334 )
4435 } )
4536}
0 commit comments