From d875652142ef5fa4302f70753f5d552bb6ea1622 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Valverd=C3=A9?= Date: Fri, 5 Jul 2024 01:23:58 +0200 Subject: [PATCH] RPC work --- packages/server/src/rpc/RPCProcedure.ts | 11 +++++++++++ packages/server/src/rpc/RPCServer.ts | 4 ++-- packages/server/src/rpc/procedures.ts | 5 ----- packages/server/src/rpc/routers/index.ts | 14 +++++++++----- packages/server/src/trpc/TRPCEffectRuntime.ts | 19 ------------------- 5 files changed, 22 insertions(+), 31 deletions(-) create mode 100644 packages/server/src/rpc/RPCProcedure.ts delete mode 100644 packages/server/src/rpc/procedures.ts delete mode 100644 packages/server/src/trpc/TRPCEffectRuntime.ts diff --git a/packages/server/src/rpc/RPCProcedure.ts b/packages/server/src/rpc/RPCProcedure.ts new file mode 100644 index 0000000..7b919a9 --- /dev/null +++ b/packages/server/src/rpc/RPCProcedure.ts @@ -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")>() {} + +export module RPCProcedure { + export const Live = Layer.effect(RPCProcedure, procedure) +} diff --git a/packages/server/src/rpc/RPCServer.ts b/packages/server/src/rpc/RPCServer.ts index c7f8af7..5509723 100644 --- a/packages/server/src/rpc/RPCServer.ts +++ b/packages/server/src/rpc/RPCServer.ts @@ -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, }), ) diff --git a/packages/server/src/rpc/procedures.ts b/packages/server/src/rpc/procedures.ts deleted file mode 100644 index 0e6841e..0000000 --- a/packages/server/src/rpc/procedures.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Effect } from "effect" -import { TRPCBuilder } from "../trpc/TRPCBuilder" - - -export const procedure = TRPCBuilder.pipe(Effect.map(t => t.procedure)) diff --git a/packages/server/src/rpc/routers/index.ts b/packages/server/src/rpc/routers/index.ts index 9dae539..c9a784c 100644 --- a/packages/server/src/rpc/routers/index.ts +++ b/packages/server/src/rpc/routers/index.ts @@ -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 diff --git a/packages/server/src/trpc/TRPCEffectRuntime.ts b/packages/server/src/trpc/TRPCEffectRuntime.ts deleted file mode 100644 index 8b83773..0000000 --- a/packages/server/src/trpc/TRPCEffectRuntime.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Context, Effect, Layer, Runtime } from "effect" -import type { RuntimeFiber } from "effect/Fiber" -import type { Services } from "../Services" - - -export class TRPCEffectRuntime extends Context.Tag("TRPCEffectRuntime")( - self: Effect.Effect, - options?: Runtime.RunForkOptions, - ) => RuntimeFiber ->() {} - -export module TRPCEffectRuntime { - export const Live = Layer.effect(TRPCEffectRuntime, - Effect.runtime().pipe( - Effect.map(Runtime.runFork) - ) - ) -}