| 12345678910111213141516171819202122232425262728 |
- import * as NodeHttpServer from "@effect/platform-node/NodeHttpServer"
- import * as NodeRuntime from "@effect/platform-node/NodeRuntime"
- import { Config, Layer } from "effect"
- import { HttpRouter } from "effect/unstable/http"
- import { createServer } from "node:http"
- import { Ingest } from "./ingest"
- import { Routes } from "./router"
- import { registerShutdownSignalHandlers } from "./shutdown"
- registerShutdownSignalHandlers()
- const ServerLive = NodeHttpServer.layerConfig(
- () => createServer(),
- Config.all({
- port: Config.number("PORT").pipe(Config.withDefault(3000)),
- host: Config.string("HOST").pipe(Config.withDefault("0.0.0.0")),
- }),
- )
- const runtimeLayer = Ingest.layer
- const programLayer = Routes.pipe(Layer.provide(runtimeLayer))
- const main = Layer.launch(
- HttpRouter.serve(programLayer, {
- disableLogger: true,
- }).pipe(Layer.provideMerge(ServerLive)),
- )
- NodeRuntime.runMain(main, { disableErrorReporting: true })
|