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