From 4cf88348a07a88b49988d785fdc91da8320952d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Fri, 6 Sep 2024 04:05:52 +0200 Subject: [PATCH] TRPCExpressRoute --- src/Layers/trpc/TRPCExpressRoute.ts | 21 +++++++++++++++++++++ src/Layers/trpc/index.ts | 1 + 2 files changed, 22 insertions(+) create mode 100644 src/Layers/trpc/TRPCExpressRoute.ts diff --git a/src/Layers/trpc/TRPCExpressRoute.ts b/src/Layers/trpc/TRPCExpressRoute.ts new file mode 100644 index 0000000..6c47103 --- /dev/null +++ b/src/Layers/trpc/TRPCExpressRoute.ts @@ -0,0 +1,21 @@ +import { createExpressMiddleware } from "@trpc/server/adapters/express" +import { Config, Effect, Layer } from "effect" +import { ExpressApp } from "../express" +import { TRPCUnknownContextCreator } from "./TRPCContextCreator" +import { TRPCAnyRouter } from "./TRPCRouter" + + +export const TRPCExpressRouteLive = ( + config: { + readonly path: Config.Config + } +) => Layer.effectDiscard(Effect.gen(function*() { + const app = yield* ExpressApp.ExpressApp + + app.use(yield* config.path, + createExpressMiddleware({ + router: yield* TRPCAnyRouter, + createContext: (yield* TRPCUnknownContextCreator).createExpressContext, + }) + ) +})) diff --git a/src/Layers/trpc/index.ts b/src/Layers/trpc/index.ts index b3b8299..3703bfc 100644 --- a/src/Layers/trpc/index.ts +++ b/src/Layers/trpc/index.ts @@ -1,4 +1,5 @@ export * as TRPCBuilder from "./TRPCBuilder" export * as TRPCContext from "./TRPCContext" export * as TRPCContextCreator from "./TRPCContextCreator" +export * as TRPCExpressRoute from "./TRPCExpressRoute" export * as TRPCRouter from "./TRPCRouter"