TRPCContextCreator
This commit is contained in:
@@ -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),
|
||||
)
|
||||
|
||||
|
||||
@@ -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,
|
||||
}),
|
||||
)
|
||||
}))
|
||||
|
||||
@@ -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)
|
||||
)
|
||||
Reference in New Issue
Block a user