diff --git a/packages/server/src/router-utils.ts b/packages/server/src/router-utils.ts index c31e55ddc..5796b4f97 100644 --- a/packages/server/src/router-utils.ts +++ b/packages/server/src/router-utils.ts @@ -13,62 +13,64 @@ import type { Context, MergedInitialContext } from './context' import type { Lazyable } from './lazy' import { Lazy, unlazy } from './lazy' import type { AnyMiddleware } from './middleware' -import type { AnyProcedure, ProcedureConfig } from './procedure' +import type { AnyProcedure, ProcedureConfig, ProcedureDefinition } from './procedure' import { Procedure } from './procedure' import { createContractProcedure } from './procedure-utils' import type { AnyRouter } from './router' import { getHiddenRouterContract } from './router-hidden' -export type AugmentedRouter = - T extends Procedure< +export type AugmentedRouter = T extends { + '~orpc': ProcedureDefinition< infer $InitialContext, infer $CurrentContext, infer $InputSchema, infer $OutputSchema, infer $ErrorMap > - ? Procedure< - $InitialContext, - $CurrentContext, - $InputSchema, - $OutputSchema, - MergedErrorMap - > - : { - [K in keyof T]: T[K] extends Lazy +} + ? Procedure< + $InitialContext, + $CurrentContext, + $InputSchema, + $OutputSchema, + MergedErrorMap + > + : { + [K in keyof T]: T[K] extends AnyRouter + ? AugmentedRouter + : T[K] extends Lazy ? Lazy> - : T[K] extends AnyRouter - ? AugmentedRouter - : never - } + : never + } export type AugmentedRouterWithMiddlewares< T extends AnyRouter, TInitialContext extends Context, TInjectedContext extends Context, TErrorMap extends ErrorMap, -> = - T extends Procedure< +> = T extends { + '~orpc': ProcedureDefinition< infer $InitialContext, infer $CurrentContext, infer $InputSchema, infer $OutputSchema, infer $ErrorMap > - ? Procedure< - MergedInitialContext, - $CurrentContext, - $InputSchema, - $OutputSchema, - MergedErrorMap - > - : { - [K in keyof T]: T[K] extends Lazy +} + ? Procedure< + MergedInitialContext, + $CurrentContext, + $InputSchema, + $OutputSchema, + MergedErrorMap + > + : { + [K in keyof T]: T[K] extends AnyRouter + ? AugmentedRouterWithMiddlewares + : T[K] extends Lazy ? Lazy> - : T[K] extends AnyRouter - ? AugmentedRouterWithMiddlewares - : never - } + : never + } interface AugmentRouterOptions extends AugmentContractRouterOptions, ProcedureConfig {