TRPCContextCreator

This commit is contained in:
Julien Valverdé
2024-07-05 16:31:37 +02:00
parent 98795975a5
commit a27a185759
3 changed files with 7 additions and 7 deletions

View File

@@ -8,15 +8,15 @@ import { ExpressApp } from "./express/ExpressApp"
import { ExpressHTTPServer } from "./express/ExpressHTTPServer"
import { RPCServer } from "./rpc/RPCServer"
import { RPCProcedureBuilder } from "./rpc/procedures/RPCProcedureBuilder"
import { CreateTRPCContext } from "./trpc/CreateTRPCContext"
import { TRPCBuilder } from "./trpc/TRPCBuilder"
import { TRPCContextCreator } from "./trpc/TRPCContextCreator"
const ServerLive = ExpressHTTPServer.Live.pipe(
Layer.provide(RPCServer.Live),
Layer.provide(RPCProcedureBuilder.Live),
Layer.provide(TRPCBuilder.Live),
Layer.provide(CreateTRPCContext.Live),
Layer.provide(TRPCContextCreator.Live),
Layer.provide(ExpressApp.Live),
)

View File

@@ -1,7 +1,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 { TRPCContextCreator } from "../trpc/TRPCContextCreator"
import { appRouter } from "./routers"
@@ -14,7 +14,7 @@ export module RPCServer {
createExpressMiddleware({
router: yield* appRouter,
createContext: yield* CreateTRPCContext,
createContext: yield* TRPCContextCreator,
}),
)
}))

View File

@@ -7,12 +7,12 @@ import type { TRPCContext } from "./TRPCContext"
/**
* Provides a function that instantiates a fresh context for each tRPC procedure call
*/
export class CreateTRPCContext extends Context.Tag("CreateTRPCContext")<CreateTRPCContext,
export class TRPCContextCreator extends Context.Tag("TRPCContextCreator")<TRPCContextCreator,
(opts: CreateExpressContextOptions) => TRPCContext
>() {}
export module CreateTRPCContext {
export const Live = Layer.effect(CreateTRPCContext, Effect.gen(function*() {
export module TRPCContextCreator {
export const Live = Layer.effect(TRPCContextCreator, Effect.gen(function*() {
const run = yield* Effect.runtime<Services>().pipe(
Effect.map(Runtime.runFork)
)