diff --git a/bun.lockb b/bun.lockb index 14a1898..f5ce228 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/packages/server/package.json b/packages/server/package.json index 0db6f00..ac397ca 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -8,6 +8,7 @@ "@effect/schema": "^0.68.12", "@thilawyn/thilalib": "^0.1.4", "@todo-tests/common": "workspace:*", + "@trpc/server": "^10.45.2", "effect": "^3.4.5", "express": "^4.19.2" }, diff --git a/packages/server/src/api/trpc/index.ts b/packages/server/src/api/trpc/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/packages/server/src/express.ts b/packages/server/src/express.ts index 583dcf2..4ac33ab 100644 --- a/packages/server/src/express.ts +++ b/packages/server/src/express.ts @@ -1,4 +1,4 @@ -import { Context, Effect, Layer } from "effect" +import { Config, Context, Effect, Layer } from "effect" import express from "express" @@ -7,13 +7,16 @@ export const ExpressLive = Layer.sync(Express, () => express()) export const ServerLive = Layer.scopedDiscard(Effect.gen(function*() { - const port = 8080 - const app = yield* Express + const app = yield* Express + const port = yield* Config.number("PORT").pipe(Config.withDefault(8080)) yield* Effect.acquireRelease( Effect.sync(() => - app.listen(port, () => console.log(`Example app listening on port ${ port }`)) + app.listen(port, () => console.log(`HTTP server listening on ${ port }.`)) + ), + + server => Effect.sync(() => + server.close() ), - server => Effect.sync(() => server.close()), ) })) diff --git a/packages/server/src/trpc.ts b/packages/server/src/trpc.ts new file mode 100644 index 0000000..e69de29