This commit is contained in:
Julien Valverdé
2024-07-05 01:23:58 +02:00
parent cb0973b5ed
commit d875652142
5 changed files with 22 additions and 31 deletions

View File

@@ -0,0 +1,11 @@
import { Context, Effect, Layer } from "effect"
import { TRPCBuilder } from "../trpc/TRPCBuilder"
const procedure = TRPCBuilder.pipe(Effect.map(t => t.procedure))
export class RPCProcedure extends Context.Tag("RPCProcedure")<RPCProcedure, Effect.Effect.Success<typeof procedure>>() {}
export module RPCProcedure {
export const Live = Layer.effect(RPCProcedure, procedure)
}

View File

@@ -2,7 +2,7 @@ import { createExpressMiddleware } from "@trpc/server/adapters/express"
import { Config, Effect, Layer } from "effect"
import { ExpressApp } from "../express/ExpressApp"
import { CreateTRPCContext } from "../trpc/CreateTRPCContext"
import { router } from "./routers"
import { appRouter } from "./routers"
export module RPCServer {
@@ -13,7 +13,7 @@ export module RPCServer {
yield* Config.string("RPC_ROOT").pipe(Config.withDefault("/rpc")),
createExpressMiddleware({
router: yield* router,
router: yield* appRouter,
createContext: yield* CreateTRPCContext,
}),
)

View File

@@ -1,5 +0,0 @@
import { Effect } from "effect"
import { TRPCBuilder } from "../trpc/TRPCBuilder"
export const procedure = TRPCBuilder.pipe(Effect.map(t => t.procedure))

View File

@@ -1,13 +1,17 @@
import { Effect } from "effect"
import { TRPCBuilder } from "../../trpc/TRPCBuilder"
import { procedure } from "../procedures"
import { RPCProcedure } from "../RPCProcedure"
export const router = Effect.gen(function*() {
const t = yield* TRPCBuilder
const proc = yield* procedure
export const appRouter = Effect.gen(function*() {
const t = yield* TRPCBuilder
const procedure = yield* RPCProcedure
return t.router({
ping: proc.query(({ ctx }) => ctx.run(Effect.succeed("pong")))
ping: procedure.query(({ ctx }) =>
ctx.run(Effect.succeed("pong"))
)
})
})
export type AppRouter = Effect.Effect.Success<typeof appRouter>