From d93c86d60ff598af8164cf85d49634dccdb8caf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Sun, 30 Jun 2024 23:11:27 +0200 Subject: [PATCH] Express --- packages/server/src/express.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/packages/server/src/express.ts b/packages/server/src/express.ts index ca06478..583dcf2 100644 --- a/packages/server/src/express.ts +++ b/packages/server/src/express.ts @@ -1,7 +1,19 @@ -import { Context, Layer } from "effect" +import { Context, Effect, Layer } from "effect" import express from "express" export class Express extends Context.Tag("Express")>() {} - export const ExpressLive = Layer.sync(Express, () => express()) + + +export const ServerLive = Layer.scopedDiscard(Effect.gen(function*() { + const port = 8080 + const app = yield* Express + + yield* Effect.acquireRelease( + Effect.sync(() => + app.listen(port, () => console.log(`Example app listening on port ${ port }`)) + ), + server => Effect.sync(() => server.close()), + ) +}))