1import * as Effect from "effect/Effect"
2import * as HttpRouter from "effect/http/HttpRouter"
3import * as HttpServerResponse from "effect/http/HttpServerResponse"
4import * as Layer from "effect/Layer"
5
6const Routes = Layer.mergeAll(
7 HttpRouter.add("GET", "/hello", HttpServerResponse.text("Hello")),
8 HttpRouter.add(
9 "GET",
10 "/users/:id",
11 Effect.map(HttpRouter.params, (params) => HttpServerResponse.jsonUnsafe({ id: params.id }))
12 )
13)
14
15const { handler } = HttpRouter.toWebHandler(Routes, { disableLogger: true })
16
17handler(new Request("http://localhost/hello")).then((response) => response.text())