Files
thilalib/src/Layers/trpc/tests.ts
Julien Valverdé 65ef5f0896
Some checks failed
Lint / lint (push) Failing after 11s
TRCP refactoring
2024-09-07 02:14:11 +02:00

44 lines
1.2 KiB
TypeScript

import { Config, Context, Effect, Layer } from "effect"
import * as TRPC from "."
import { ExpressApp, ExpressNodeHTTPServer } from "../express"
type Services = never
const { TRPCContextCreator, TRPCContextCreatorLive } = TRPC.TRPCContextCreator.make<Services>()
const { TRPCBuilder, TRPCBuilderLive } = TRPC.TRPCBuilder.make<Services>()
const router = TRPCBuilder.pipe(Effect.map(t => t.router({
ping: t.procedure.query(({ ctx }) => ctx.run(
Effect.succeed("pong")
)),
})))
const { TRPCRouter, TRPCRouterLive } = TRPC.TRPCRouter.make(router)
const ServerLive = Layer.empty.pipe(
Layer.provideMerge(TRPC.TRPCExpressRoute.TRPCExpressRouteLive(TRPCRouter, {
root: Config.succeed("/rpc")
})),
Layer.provideMerge(TRPCRouterLive),
Layer.provideMerge(TRPCBuilderLive),
Layer.provideMerge(TRPCContextCreatorLive),
Layer.provideMerge(ExpressNodeHTTPServer.ExpressNodeHTTPServerLive({
port: Config.succeed(3000)
})),
Layer.provideMerge(ExpressApp.ExpressAppLive())
)
await Effect.gen(function*() {
// yield* TRPCRouter
return yield* Layer.launch(ServerLive)
}).pipe(
Effect.scoped,
Effect.runPromise,
)