Skip to main content
Version: 11.x

Interface: TRPCProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut, TCaller, TErrorShape>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:198

Type Parameters​

Type ParameterDefault type
TContext-
TMeta-
TContextOverrides-
TInputIn-
TInputOut-
TOutputIn-
TOutputOut-
TCaller extends boolean-
TErrorShapeunknown

Methods​

concat()​

concat<$Context, $Meta, $ContextOverrides, $InputIn, $InputOut, $OutputIn, $OutputOut, $ErrorShape>(builder): TRPCProcedureBuilder<TContext, TMeta, Overwrite<TContextOverrides, $ContextOverrides>, IntersectIfDefined<TInputIn, $InputIn>, IntersectIfDefined<TInputOut, $InputOut>, IntersectIfDefined<TOutputIn, $OutputIn>, IntersectIfDefined<TOutputOut, $OutputOut>, TCaller, FoldErrorShape<TErrorShape, $ErrorShape>>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:371

Combine two procedure builders

Type Parameters​

Type Parameter
$Context
$Meta
$ContextOverrides
$InputIn
$InputOut
$OutputIn
$OutputOut
$ErrorShape

Parameters​

ParameterType
builderOverwrite<TContext, TContextOverrides> extends $Context ? TMeta extends $Meta ? TRPCProcedureBuilder<$Context, $Meta, $ContextOverrides, $InputIn, $InputOut, $OutputIn, $OutputOut, TCaller, $ErrorShape> : TypeError<"Meta mismatch"> : TypeError<"Context mismatch">

Returns​

TRPCProcedureBuilder<TContext, TMeta, Overwrite<TContextOverrides, $ContextOverrides>, IntersectIfDefined<TInputIn, $InputIn>, IntersectIfDefined<TInputOut, $InputOut>, IntersectIfDefined<TOutputIn, $OutputIn>, IntersectIfDefined<TOutputOut, $OutputOut>, TCaller, FoldErrorShape<TErrorShape, $ErrorShape>>


errors()​

errors<$Shape>(formatter): TRPCProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut, TCaller, FoldErrorShape<TErrorShape, $Shape>>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:284

Add per procedure error formatters.

An error will bubble until a .errors() handler returns a shape or it reaches the global errorFormatter

Type Parameters​

Type Parameter
$Shape extends undefined | void | TRPCErrorShape<object>

Parameters​

ParameterType
formatterProcedureErrorFormatter<TContext, TContextOverrides, $Shape>

Returns​

TRPCProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut, TCaller, FoldErrorShape<TErrorShape, $Shape>>

See​

https://trpc.io/docs/v11/server/error-formatting


experimental_caller()​

experimental_caller(caller): TRPCProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut, true, TErrorShape>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:502

Overrides the way a procedure is invoked Do not use this unless you know what you're doing - this is an experimental API

Parameters​

ParameterType
callerCallerOverride<TContext>

Returns​

TRPCProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut, true, TErrorShape>


input()​

input<$Parser>(schema): TRPCProcedureBuilder<TContext, TMeta, TContextOverrides, IntersectIfDefined<TInputIn, inferParser<$Parser>["in"]>, IntersectIfDefined<TInputOut, inferParser<$Parser>["out"]>, TOutputIn, TOutputOut, TCaller, TErrorShape>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:219

Add an input parser to the procedure.

Type Parameters​

Type Parameter
$Parser extends Parser

Parameters​

ParameterType
schemaTInputOut extends UnsetMarker ? $Parser : inferParser<$Parser>["out"] extends undefined | Record<string, unknown> ? TInputOut extends undefined | Record<string, unknown> ? undefined extends any[any] ? undefined extends TInputOut<TInputOut> ? $Parser : TypeError<"Cannot chain an optional parser to a required parser"> : $Parser : TypeError<"All input parsers did not resolve to an object"> : TypeError<"All input parsers did not resolve to an object">

Returns​

TRPCProcedureBuilder<TContext, TMeta, TContextOverrides, IntersectIfDefined<TInputIn, inferParser<$Parser>["in"]>, IntersectIfDefined<TInputOut, inferParser<$Parser>["out"]>, TOutputIn, TOutputOut, TCaller, TErrorShape>

See​

https://trpc.io/docs/v11/server/validators


meta()​

meta(meta): TRPCProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut, TCaller, TErrorShape>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:263

Add a meta data to the procedure.

Parameters​

ParameterType
metaTMeta

Returns​

TRPCProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut, TCaller, TErrorShape>

See​

https://trpc.io/docs/v11/server/metadata


mutation()​

mutation<$Output>(resolver): TCaller extends true ? (input) => Promise<DefaultValue<TOutputOut, $Output>> : TRPCMutationProcedure<{ errorShape: TErrorShape; input: DefaultValue<TInputIn, void>; meta: TMeta; output: DefaultValue<TOutputOut, $Output>; }>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:435

Mutation procedure

Type Parameters​

Type Parameter
$Output

Parameters​

ParameterType
resolverProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>

Returns​

TCaller extends true ? (input) => Promise<DefaultValue<TOutputOut, $Output>> : TRPCMutationProcedure<{ errorShape: TErrorShape; input: DefaultValue<TInputIn, void>; meta: TMeta; output: DefaultValue<TOutputOut, $Output>; }>

See​

https://trpc.io/docs/v11/concepts#vocabulary


output()​

output<$Parser>(schema): TRPCProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, IntersectIfDefined<TOutputIn, inferParser<$Parser>["in"]>, IntersectIfDefined<TOutputOut, inferParser<$Parser>["out"]>, TCaller, TErrorShape>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:246

Add an output parser to the procedure.

Type Parameters​

Type Parameter
$Parser extends Parser

Parameters​

ParameterType
schema$Parser

Returns​

TRPCProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, IntersectIfDefined<TOutputIn, inferParser<$Parser>["in"]>, IntersectIfDefined<TOutputOut, inferParser<$Parser>["out"]>, TCaller, TErrorShape>

See​

https://trpc.io/docs/v11/server/validators


query()​

query<$Output>(resolver): TCaller extends true ? (input) => Promise<DefaultValue<TOutputOut, $Output>> : TRPCQueryProcedure<{ errorShape: TErrorShape; input: DefaultValue<TInputIn, void>; meta: TMeta; output: DefaultValue<TOutputOut, $Output>; }>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:411

Query procedure

Type Parameters​

Type Parameter
$Output

Parameters​

ParameterType
resolverProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>

Returns​

TCaller extends true ? (input) => Promise<DefaultValue<TOutputOut, $Output>> : TRPCQueryProcedure<{ errorShape: TErrorShape; input: DefaultValue<TInputIn, void>; meta: TMeta; output: DefaultValue<TOutputOut, $Output>; }>

See​

https://trpc.io/docs/v11/concepts#vocabulary


subscription()​

Call Signature​

subscription<$Output>(resolver): TCaller extends true ? TypeError<"Not implemented"> : TRPCSubscriptionProcedure<{ errorShape: TErrorShape; input: DefaultValue<TInputIn, void>; meta: TMeta; output: inferSubscriptionOutput<DefaultValue<TOutputOut, $Output>>; }>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:459

Subscription procedure

Type Parameters​
Type Parameter
$Output extends AsyncIterable<any, void, any>
Parameters​
ParameterType
resolverProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>
Returns​

TCaller extends true ? TypeError<"Not implemented"> : TRPCSubscriptionProcedure<{ errorShape: TErrorShape; input: DefaultValue<TInputIn, void>; meta: TMeta; output: inferSubscriptionOutput<DefaultValue<TOutputOut, $Output>>; }>

See​

https://trpc.io/docs/v11/server/subscriptions

Call Signature​

subscription<$Output>(resolver): TCaller extends true ? TypeError<"Not implemented"> : LegacyObservableSubscriptionProcedure<{ errorShape: TErrorShape; input: DefaultValue<TInputIn, void>; meta: TMeta; output: inferObservableValue<DefaultValue<TOutputOut, $Output>>; }>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:481

Type Parameters​
Type Parameter
$Output extends Observable<any, any>
Parameters​
ParameterType
resolverProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>
Returns​

TCaller extends true ? TypeError<"Not implemented"> : LegacyObservableSubscriptionProcedure<{ errorShape: TErrorShape; input: DefaultValue<TInputIn, void>; meta: TMeta; output: inferObservableValue<DefaultValue<TOutputOut, $Output>>; }>

Deprecated​

Using subscriptions with an observable is deprecated. Use an async generator instead. This feature will be removed in v12 of tRPC.

See​

https://trpc.io/docs/v11/server/subscriptions


unstable_concat()​

unstable_concat<$Context, $Meta, $ContextOverrides, $InputIn, $InputOut, $OutputIn, $OutputOut, $ErrorShape>(builder): TRPCProcedureBuilder<TContext, TMeta, Overwrite<TContextOverrides, $ContextOverrides>, IntersectIfDefined<TInputIn, $InputIn>, IntersectIfDefined<TInputOut, $InputOut>, IntersectIfDefined<TOutputIn, $OutputIn>, IntersectIfDefined<TOutputOut, $OutputOut>, TCaller, FoldErrorShape<TErrorShape, $ErrorShape>>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:331

Type Parameters​

Type Parameter
$Context
$Meta
$ContextOverrides
$InputIn
$InputOut
$OutputIn
$OutputOut
$ErrorShape

Parameters​

ParameterType
builderOverwrite<TContext, TContextOverrides> extends $Context ? TMeta extends $Meta ? TRPCProcedureBuilder<$Context, $Meta, $ContextOverrides, $InputIn, $InputOut, $OutputIn, $OutputOut, TCaller, $ErrorShape> : TypeError<"Meta mismatch"> : TypeError<"Context mismatch">

Returns​

TRPCProcedureBuilder<TContext, TMeta, Overwrite<TContextOverrides, $ContextOverrides>, IntersectIfDefined<TInputIn, $InputIn>, IntersectIfDefined<TInputOut, $InputOut>, IntersectIfDefined<TOutputIn, $OutputIn>, IntersectIfDefined<TOutputOut, $OutputOut>, TCaller, FoldErrorShape<TErrorShape, $ErrorShape>>

Deprecated​

use concat instead


use()​

use<$ContextOverridesOut>(fn): TRPCProcedureBuilder<TContext, TMeta, Overwrite<TContextOverrides, $ContextOverridesOut>, TInputIn, TInputOut, TOutputIn, TOutputOut, TCaller, TErrorShape>

Defined in: packages/server/src/unstable-core-do-not-import/procedureBuilder.ts:301

Add a middleware to the procedure.

Type Parameters​

Type Parameter
$ContextOverridesOut

Parameters​

ParameterType
fnMiddlewareBuilder<Overwrite<TContext, TContextOverrides>, TMeta, $ContextOverridesOut, TInputOut> | MiddlewareFunction<TContext, TMeta, TContextOverrides, $ContextOverridesOut, TInputOut>

Returns​

TRPCProcedureBuilder<TContext, TMeta, Overwrite<TContextOverrides, $ContextOverridesOut>, TInputIn, TInputOut, TOutputIn, TOutputOut, TCaller, TErrorShape>

See​

https://trpc.io/docs/v11/server/middlewares