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 { ExpressHTTPServer } from "./express/ExpressHTTPServer"
import { RPCServer } from "./rpc/RPCServer" import { RPCServer } from "./rpc/RPCServer"
import { RPCProcedureBuilder } from "./rpc/procedures/RPCProcedureBuilder" import { RPCProcedureBuilder } from "./rpc/procedures/RPCProcedureBuilder"
import { CreateTRPCContext } from "./trpc/CreateTRPCContext"
import { TRPCBuilder } from "./trpc/TRPCBuilder" import { TRPCBuilder } from "./trpc/TRPCBuilder"
import { TRPCContextCreator } from "./trpc/TRPCContextCreator"
const ServerLive = ExpressHTTPServer.Live.pipe( const ServerLive = ExpressHTTPServer.Live.pipe(
Layer.provide(RPCServer.Live), Layer.provide(RPCServer.Live),
Layer.provide(RPCProcedureBuilder.Live), Layer.provide(RPCProcedureBuilder.Live),
Layer.provide(TRPCBuilder.Live), Layer.provide(TRPCBuilder.Live),
Layer.provide(CreateTRPCContext.Live), Layer.provide(TRPCContextCreator.Live),
Layer.provide(ExpressApp.Live), Layer.provide(ExpressApp.Live),
) )

View File

@@ -1,7 +1,7 @@
import { createExpressMiddleware } from "@trpc/server/adapters/express" import { createExpressMiddleware } from "@trpc/server/adapters/express"
import { Config, Effect, Layer } from "effect" import { Config, Effect, Layer } from "effect"
import { ExpressApp } from "../express/ExpressApp" import { ExpressApp } from "../express/ExpressApp"
import { CreateTRPCContext } from "../trpc/CreateTRPCContext" import { TRPCContextCreator } from "../trpc/TRPCContextCreator"
import { appRouter } from "./routers" import { appRouter } from "./routers"
@@ -14,7 +14,7 @@ export module RPCServer {
createExpressMiddleware({ createExpressMiddleware({
router: yield* appRouter, 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 * 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 (opts: CreateExpressContextOptions) => TRPCContext
>() {} >() {}
export module CreateTRPCContext { export module TRPCContextCreator {
export const Live = Layer.effect(CreateTRPCContext, Effect.gen(function*() { export const Live = Layer.effect(TRPCContextCreator, Effect.gen(function*() {
const run = yield* Effect.runtime<Services>().pipe( const run = yield* Effect.runtime<Services>().pipe(
Effect.map(Runtime.runFork) Effect.map(Runtime.runFork)
) )