import { createServer } from "http";
import { HttpApiError } from "@effect/platform";
import * as NodeHttpServer from "@effect/platform-node/NodeHttpServer";
import * as NodeRuntime from "@effect/platform-node/NodeRuntime";
import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter";
import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
const HelloRoute = Layer.effectDiscard(
Effect.gen(function* () {
const router = yield* HttpLayerRouter.HttpRouter;
yield* router.add(
"GET",
"/hello",
Effect.fn("HelloRoute")(function* () {
return yield* new HttpApiError.Unauthorized();
})
);
})
);
const AllRoutes = Layer.mergeAll(HelloRoute);
HttpLayerRouter.serve(AllRoutes).pipe(
Layer.provide(NodeHttpServer.layer(createServer, { port: 3001 })),
Layer.launch,
NodeRuntime.runMain
);
import { createServer } from "http";
import { HttpApiError } from "@effect/platform";
import * as NodeHttpServer from "@effect/platform-node/NodeHttpServer";
import * as NodeRuntime from "@effect/platform-node/NodeRuntime";
import * as HttpLayerRouter from "@effect/platform/HttpLayerRouter";
import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
const HelloRoute = Layer.effectDiscard(
Effect.gen(function* () {
const router = yield* HttpLayerRouter.HttpRouter;
yield* router.add(
"GET",
"/hello",
Effect.fn("HelloRoute")(function* () {
return yield* new HttpApiError.Unauthorized();
})
);
})
);
const AllRoutes = Layer.mergeAll(HelloRoute);
HttpLayerRouter.serve(AllRoutes).pipe(
Layer.provide(NodeHttpServer.layer(createServer, { port: 3001 })),
Layer.launch,
NodeRuntime.runMain
);