Co-authored-by: Julien Valverdé <julien.valverde@mailo.com> Reviewed-on: #1
19 lines
561 B
TypeScript
19 lines
561 B
TypeScript
import { NodeContext, NodeHttpServer, NodeRuntime } from "@effect/platform-node"
|
|
import { Effect, Layer } from "effect"
|
|
import { createServer } from "node:http"
|
|
import { ServerConfig } from "./config"
|
|
import { Server } from "./server"
|
|
|
|
|
|
Layer.launch(Server).pipe(
|
|
Effect.provide(Layer.empty.pipe(
|
|
Layer.provideMerge(ServerConfig.httpPort.pipe(
|
|
Effect.map(port => NodeHttpServer.layer(createServer, { port })),
|
|
Layer.unwrapEffect,
|
|
)),
|
|
Layer.provideMerge(NodeContext.layer),
|
|
)),
|
|
|
|
NodeRuntime.runMain,
|
|
)
|