Просмотр исходного кода

refactor(question): use effectful HttpApi group builder

Build the question HttpApi handlers with an effectful group callback so the service is resolved once at layer construction time and the endpoint handlers close over the resulting service methods.
Kit Langton 4 дней назад
Родитель
Сommit
a4c8d0588e
1 измененных файлов с 5 добавлено и 3 удалено
  1. 5 3
      packages/opencode/src/server/instance/httpapi/question.ts

+ 5 - 3
packages/opencode/src/server/instance/httpapi/question.ts

@@ -50,8 +50,10 @@ const Api = HttpApi.make("question")
     }),
   )
 
-const QuestionLive = Layer.unwrap(
-  Effect.gen(function* () {
+const QuestionLive = HttpApiBuilder.group(
+  Api,
+  "question",
+  Effect.fn("QuestionHttpApi.handlers")(function* (handlers) {
     const svc = yield* Question.Service
 
     const list = Effect.fn("QuestionHttpApi.list")(function* () {
@@ -69,7 +71,7 @@ const QuestionLive = Layer.unwrap(
       return true
     })
 
-    return HttpApiBuilder.group(Api, "question", (handlers) => handlers.handle("list", list).handle("reply", reply))
+    return handlers.handle("list", list).handle("reply", reply)
   }),
 ).pipe(Layer.provide(Question.defaultLayer))