diff --git a/packages/server/src/rpc/index.ts b/packages/server/src/rpc/RPCRouter.ts similarity index 53% rename from packages/server/src/rpc/index.ts rename to packages/server/src/rpc/RPCRouter.ts index 743a976..b34b1c3 100644 --- a/packages/server/src/rpc/index.ts +++ b/packages/server/src/rpc/RPCRouter.ts @@ -2,7 +2,16 @@ import { Effect, Layer } from "effect" import { TRPCBuilder, TRPCBuilderLive } from "../trpc/TRPCBuilder" -export const RPCRouter = Layer.effectDiscard(Effect.gen(function*() { +const rpcRouter = Effect.gen(function*() { + const t = yield* TRPCBuilder + + return t.router({ + + }) +}) + + +export const RPCRouterLive = Layer.effectDiscard(Effect.gen(function*() { const t = yield* TRPCBuilder t.router({ diff --git a/packages/server/src/rpc/routers/index.ts b/packages/server/src/rpc/routers/index.ts new file mode 100644 index 0000000..d301dd1 --- /dev/null +++ b/packages/server/src/rpc/routers/index.ts @@ -0,0 +1,13 @@ +import { Effect } from "effect" +import { TRPCBuilder } from "../../trpc/TRPCBuilder" +import { procedure } from "../procedures" + + +export const router = Effect.gen(function*() { + const t = yield* TRPCBuilder + const proc = yield* procedure + + return t.router({ + ping: proc.query(() => "pong") + }) +}) diff --git a/packages/server/src/trpc/TRPCBuilder.ts b/packages/server/src/trpc/TRPCBuilder.ts index 34f4c5e..2fddbe5 100644 --- a/packages/server/src/trpc/TRPCBuilder.ts +++ b/packages/server/src/trpc/TRPCBuilder.ts @@ -1,7 +1,9 @@ import { initTRPC } from "@trpc/server" import { Context, Layer } from "effect" +import type { TRPCContext } from "./context" -export class TRPCBuilder extends Context.Tag("TRPCBuilder")>() {} +const createTRPC = () => initTRPC.context().create() -export const TRPCBuilderLive = Layer.sync(TRPCBuilder, () => initTRPC.create()) +export class TRPCBuilder extends Context.Tag("TRPCBuilder")>() {} +export const TRPCBuilderLive = Layer.sync(TRPCBuilder, createTRPC) diff --git a/packages/server/src/trpc/TRPCExpressAdapter.ts b/packages/server/src/trpc/TRPCExpressAdapter.ts deleted file mode 100644 index e69de29..0000000 diff --git a/packages/server/src/trpc/context.ts b/packages/server/src/trpc/context.ts new file mode 100644 index 0000000..ea52be1 --- /dev/null +++ b/packages/server/src/trpc/context.ts @@ -0,0 +1,5 @@ +import type { CreateExpressContextOptions } from "@trpc/server/adapters/express" + + +export const createTRPCContext = ({ req }: CreateExpressContextOptions) => ({ req }) +export type TRPCContext = Awaited>