This commit is contained in:
Julien Valverdé
2024-07-04 02:03:28 +02:00
parent 354adadfcc
commit 3bbacf8a91
5 changed files with 32 additions and 3 deletions

View File

@@ -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({

View File

@@ -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")
})
})

View File

@@ -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")<TRPCBuilder, ReturnType<typeof initTRPC.create>>() {}
const createTRPC = () => initTRPC.context<TRPCContext>().create()
export const TRPCBuilderLive = Layer.sync(TRPCBuilder, () => initTRPC.create())
export class TRPCBuilder extends Context.Tag("TRPCBuilder")<TRPCBuilder, ReturnType<typeof createTRPC>>() {}
export const TRPCBuilderLive = Layer.sync(TRPCBuilder, createTRPC)

View File

@@ -0,0 +1,5 @@
import type { CreateExpressContextOptions } from "@trpc/server/adapters/express"
export const createTRPCContext = ({ req }: CreateExpressContextOptions) => ({ req })
export type TRPCContext = Awaited<ReturnType<typeof createTRPCContext>>