@trpc/server 11.0.0-next.320 → 11.0.0-next.323
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle-analysis.json +71 -70
- package/dist/unstable-core-do-not-import/http/index.d.ts +5 -1
- package/dist/unstable-core-do-not-import/http/index.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/http/types.d.ts +7 -10
- package/dist/unstable-core-do-not-import/http/types.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/initTRPC.d.ts +3 -3
- package/dist/unstable-core-do-not-import/procedure.d.ts +13 -1
- package/dist/unstable-core-do-not-import/procedure.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +46 -13
- package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.js +20 -1
- package/dist/unstable-core-do-not-import/procedureBuilder.mjs +20 -1
- package/dist/unstable-core-do-not-import/router.d.ts +10 -4
- package/dist/unstable-core-do-not-import/router.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/router.js +18 -23
- package/dist/unstable-core-do-not-import/router.mjs +20 -25
- package/dist/unstable-core-do-not-import/utils.d.ts +3 -0
- package/dist/unstable-core-do-not-import/utils.d.ts.map +1 -1
- package/dist/unstable-core-do-not-import/utils.js +4 -0
- package/dist/unstable-core-do-not-import/utils.mjs +4 -1
- package/dist/unstable-core-do-not-import.js +1 -0
- package/dist/unstable-core-do-not-import.mjs +1 -1
- package/package.json +2 -2
- package/src/unstable-core-do-not-import/http/index.ts +5 -1
- package/src/unstable-core-do-not-import/http/types.ts +9 -10
- package/src/unstable-core-do-not-import/procedure.ts +21 -1
- package/src/unstable-core-do-not-import/procedureBuilder.ts +107 -21
- package/src/unstable-core-do-not-import/router.ts +45 -32
- package/src/unstable-core-do-not-import/utils.ts +5 -0
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import type { inferObservableValue } from '../observable';
|
|
2
2
|
import type { AnyMiddlewareFunction, MiddlewareBuilder, MiddlewareFunction } from './middleware';
|
|
3
3
|
import type { inferParser, Parser } from './parser';
|
|
4
|
-
import type { MutationProcedure, ProcedureType, QueryProcedure, SubscriptionProcedure } from './procedure';
|
|
4
|
+
import type { AnyProcedure, MutationProcedure, ProcedureType, QueryProcedure, SubscriptionProcedure } from './procedure';
|
|
5
5
|
import type { GetRawInputFn, MaybePromise, Overwrite, Simplify, TypeError } from './types';
|
|
6
6
|
type IntersectIfDefined<TType, TWith> = TType extends UnsetMarker ? TWith : TWith extends UnsetMarker ? TType : Simplify<TType & TWith>;
|
|
7
7
|
/** @internal */
|
|
8
8
|
export declare const unsetMarker: unique symbol;
|
|
9
9
|
type UnsetMarker = typeof unsetMarker;
|
|
10
10
|
type DefaultValue<TValue, TFallback> = TValue extends UnsetMarker ? TFallback : TValue;
|
|
11
|
+
export type CallerOverride = (opts: {
|
|
12
|
+
args: unknown[];
|
|
13
|
+
invoke: (opts: ProcedureCallOptions) => Promise<unknown>;
|
|
14
|
+
_def: AnyProcedure['_def'];
|
|
15
|
+
}) => Promise<unknown>;
|
|
11
16
|
type ProcedureBuilderDef<TMeta> = {
|
|
12
17
|
procedure: true;
|
|
13
18
|
inputs: Parser[];
|
|
@@ -15,9 +20,20 @@ type ProcedureBuilderDef<TMeta> = {
|
|
|
15
20
|
meta?: TMeta;
|
|
16
21
|
resolver?: ProcedureBuilderResolver;
|
|
17
22
|
middlewares: AnyMiddlewareFunction[];
|
|
23
|
+
/**
|
|
24
|
+
* @deprecated use `type` instead
|
|
25
|
+
*/
|
|
18
26
|
mutation?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* @deprecated use `type` instead
|
|
29
|
+
*/
|
|
19
30
|
query?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* @deprecated use `type` instead
|
|
33
|
+
*/
|
|
20
34
|
subscription?: boolean;
|
|
35
|
+
type?: ProcedureType;
|
|
36
|
+
caller?: CallerOverride;
|
|
21
37
|
};
|
|
22
38
|
type AnyProcedureBuilderDef = ProcedureBuilderDef<any>;
|
|
23
39
|
/**
|
|
@@ -32,47 +48,51 @@ export interface ProcedureResolverOptions<TContext, _TMeta, TContextOverridesIn,
|
|
|
32
48
|
* A procedure resolver
|
|
33
49
|
*/
|
|
34
50
|
type ProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputParserIn, $Output> = (opts: ProcedureResolverOptions<TContext, TMeta, TContextOverrides, TInputOut>) => MaybePromise<DefaultValue<TOutputParserIn, $Output>>;
|
|
35
|
-
export type AnyProcedureBuilder = ProcedureBuilder<any, any, any, any, any, any, any>;
|
|
51
|
+
export type AnyProcedureBuilder = ProcedureBuilder<any, any, any, any, any, any, any, any>;
|
|
36
52
|
/**
|
|
37
53
|
* Infer the context type from a procedure builder
|
|
38
54
|
* Useful to create common helper functions for different procedures
|
|
39
55
|
*/
|
|
40
|
-
export type inferProcedureBuilderResolverOptions<TProcedureBuilder extends AnyProcedureBuilder> = TProcedureBuilder extends ProcedureBuilder<infer TContext, infer TMeta, infer TContextOverrides, infer _TInputIn, infer TInputOut, infer _TOutputIn, infer _TOutputOut> ? ProcedureResolverOptions<TContext, TMeta, TContextOverrides, TInputOut extends UnsetMarker ? unknown : TInputOut extends object ? Simplify<TInputOut & {
|
|
56
|
+
export type inferProcedureBuilderResolverOptions<TProcedureBuilder extends AnyProcedureBuilder> = TProcedureBuilder extends ProcedureBuilder<infer TContext, infer TMeta, infer TContextOverrides, infer _TInputIn, infer TInputOut, infer _TOutputIn, infer _TOutputOut, infer _TCaller> ? ProcedureResolverOptions<TContext, TMeta, TContextOverrides, TInputOut extends UnsetMarker ? unknown : TInputOut extends object ? Simplify<TInputOut & {
|
|
41
57
|
/**
|
|
42
58
|
* Extra input params might have been added by a `.input()` further down the chain
|
|
43
59
|
*/
|
|
44
60
|
[keyAddedByInputCallFurtherDown: string]: unknown;
|
|
45
61
|
}> : TInputOut> : never;
|
|
46
|
-
export interface ProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut> {
|
|
62
|
+
export interface ProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut, TCaller extends boolean> {
|
|
47
63
|
/**
|
|
48
64
|
* Add an input parser to the procedure.
|
|
49
65
|
* @link https://trpc.io/docs/v11/server/validators
|
|
50
66
|
*/
|
|
51
|
-
input<$Parser extends Parser>(schema: TInputOut extends UnsetMarker ? $Parser : inferParser<$Parser>['out'] extends Record<string, unknown> | undefined ? TInputOut extends Record<string, unknown> | undefined ? undefined extends inferParser<$Parser>['out'] ? undefined extends 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'>): ProcedureBuilder<TContext, TMeta, TContextOverrides, IntersectIfDefined<TInputIn, inferParser<$Parser>['in']>, IntersectIfDefined<TInputOut, inferParser<$Parser>['out']>, TOutputIn, TOutputOut>;
|
|
67
|
+
input<$Parser extends Parser>(schema: TInputOut extends UnsetMarker ? $Parser : inferParser<$Parser>['out'] extends Record<string, unknown> | undefined ? TInputOut extends Record<string, unknown> | undefined ? undefined extends inferParser<$Parser>['out'] ? undefined extends 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'>): ProcedureBuilder<TContext, TMeta, TContextOverrides, IntersectIfDefined<TInputIn, inferParser<$Parser>['in']>, IntersectIfDefined<TInputOut, inferParser<$Parser>['out']>, TOutputIn, TOutputOut, TCaller>;
|
|
52
68
|
/**
|
|
53
69
|
* Add an output parser to the procedure.
|
|
54
70
|
* @link https://trpc.io/docs/v11/server/validators
|
|
55
71
|
*/
|
|
56
|
-
output<$Parser extends Parser>(schema: $Parser): ProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, IntersectIfDefined<TOutputIn, inferParser<$Parser>['in']>, IntersectIfDefined<TOutputOut, inferParser<$Parser>['out']
|
|
72
|
+
output<$Parser extends Parser>(schema: $Parser): ProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, IntersectIfDefined<TOutputIn, inferParser<$Parser>['in']>, IntersectIfDefined<TOutputOut, inferParser<$Parser>['out']>, TCaller>;
|
|
57
73
|
/**
|
|
58
74
|
* Add a meta data to the procedure.
|
|
59
75
|
* @link https://trpc.io/docs/v11/server/metadata
|
|
60
76
|
*/
|
|
61
|
-
meta(meta: TMeta): ProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut>;
|
|
77
|
+
meta(meta: TMeta): ProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut, TCaller>;
|
|
62
78
|
/**
|
|
63
79
|
* Add a middleware to the procedure.
|
|
64
80
|
* @link https://trpc.io/docs/v11/server/middlewares
|
|
65
81
|
*/
|
|
66
|
-
use<$ContextOverridesOut>(fn: MiddlewareBuilder<Overwrite<TContext, TContextOverrides>, TMeta, $ContextOverridesOut, TInputOut> | MiddlewareFunction<TContext, TMeta, TContextOverrides, $ContextOverridesOut, TInputOut>): ProcedureBuilder<TContext, TMeta, Overwrite<TContextOverrides, $ContextOverridesOut>, TInputIn, TInputOut, TOutputIn, TOutputOut>;
|
|
82
|
+
use<$ContextOverridesOut>(fn: MiddlewareBuilder<Overwrite<TContext, TContextOverrides>, TMeta, $ContextOverridesOut, TInputOut> | MiddlewareFunction<TContext, TMeta, TContextOverrides, $ContextOverridesOut, TInputOut>): ProcedureBuilder<TContext, TMeta, Overwrite<TContextOverrides, $ContextOverridesOut>, TInputIn, TInputOut, TOutputIn, TOutputOut, TCaller>;
|
|
67
83
|
/**
|
|
68
84
|
* Combine two procedure builders
|
|
69
85
|
*/
|
|
70
|
-
unstable_concat<$Context, $Meta, $ContextOverrides, $InputIn, $InputOut, $OutputIn, $OutputOut>(builder: Overwrite<TContext, TContextOverrides> extends $Context ? TMeta extends $Meta ? ProcedureBuilder<$Context, $Meta, $ContextOverrides, $InputIn, $InputOut, $OutputIn, $OutputOut> : TypeError<'Meta mismatch'> : TypeError<'Context mismatch'>): ProcedureBuilder<TContext, TMeta, Overwrite<TContextOverrides, $ContextOverrides>, IntersectIfDefined<TInputIn, $InputIn>, IntersectIfDefined<TInputIn, $InputOut>, IntersectIfDefined<TOutputIn, $OutputIn>, IntersectIfDefined<TOutputOut, $OutputOut
|
|
86
|
+
unstable_concat<$Context, $Meta, $ContextOverrides, $InputIn, $InputOut, $OutputIn, $OutputOut>(builder: Overwrite<TContext, TContextOverrides> extends $Context ? TMeta extends $Meta ? ProcedureBuilder<$Context, $Meta, $ContextOverrides, $InputIn, $InputOut, $OutputIn, $OutputOut, TCaller> : TypeError<'Meta mismatch'> : TypeError<'Context mismatch'>): ProcedureBuilder<TContext, TMeta, Overwrite<TContextOverrides, $ContextOverrides>, IntersectIfDefined<TInputIn, $InputIn>, IntersectIfDefined<TInputIn, $InputOut>, IntersectIfDefined<TOutputIn, $OutputIn>, IntersectIfDefined<TOutputOut, $OutputOut>, TCaller>;
|
|
71
87
|
/**
|
|
72
88
|
* Query procedure
|
|
73
89
|
* @link https://trpc.io/docs/v11/concepts#vocabulary
|
|
74
90
|
*/
|
|
75
|
-
query<$Output>(resolver: ProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>): QueryProcedure<{
|
|
91
|
+
query<$Output>(resolver: ProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>): QueryProcedure<TCaller extends true ? {
|
|
92
|
+
experimental_caller: true;
|
|
93
|
+
input: DefaultValue<TInputIn, void>;
|
|
94
|
+
output: DefaultValue<TOutputOut, $Output>;
|
|
95
|
+
} : {
|
|
76
96
|
input: DefaultValue<TInputIn, void>;
|
|
77
97
|
output: DefaultValue<TOutputOut, $Output>;
|
|
78
98
|
}>;
|
|
@@ -80,7 +100,11 @@ export interface ProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn,
|
|
|
80
100
|
* Mutation procedure
|
|
81
101
|
* @link https://trpc.io/docs/v11/concepts#vocabulary
|
|
82
102
|
*/
|
|
83
|
-
mutation<$Output>(resolver: ProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>): MutationProcedure<{
|
|
103
|
+
mutation<$Output>(resolver: ProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>): MutationProcedure<TCaller extends true ? {
|
|
104
|
+
experimental_caller: true;
|
|
105
|
+
input: DefaultValue<TInputIn, void>;
|
|
106
|
+
output: DefaultValue<TOutputOut, $Output>;
|
|
107
|
+
} : {
|
|
84
108
|
input: DefaultValue<TInputIn, void>;
|
|
85
109
|
output: DefaultValue<TOutputOut, $Output>;
|
|
86
110
|
}>;
|
|
@@ -88,17 +112,26 @@ export interface ProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn,
|
|
|
88
112
|
* Subscription procedure
|
|
89
113
|
* @link https://trpc.io/docs/v11/concepts#vocabulary
|
|
90
114
|
*/
|
|
91
|
-
subscription<$Output>(resolver: ProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>): SubscriptionProcedure<{
|
|
115
|
+
subscription<$Output>(resolver: ProcedureResolver<TContext, TMeta, TContextOverrides, TInputOut, TOutputIn, $Output>): SubscriptionProcedure<TCaller extends true ? {
|
|
116
|
+
experimental_caller: true;
|
|
117
|
+
input: DefaultValue<TInputIn, void>;
|
|
118
|
+
output: DefaultValue<TOutputOut, inferObservableValue<$Output>>;
|
|
119
|
+
} : {
|
|
92
120
|
input: DefaultValue<TInputIn, void>;
|
|
93
121
|
output: DefaultValue<TOutputOut, inferObservableValue<$Output>>;
|
|
94
122
|
}>;
|
|
123
|
+
/**
|
|
124
|
+
* Overrides the way a procedure is invoked
|
|
125
|
+
* Do not use this unless you know what you're doing - this is an experimental API
|
|
126
|
+
*/
|
|
127
|
+
experimental_caller(caller: CallerOverride): ProcedureBuilder<TContext, TMeta, TContextOverrides, TInputIn, TInputOut, TOutputIn, TOutputOut, true>;
|
|
95
128
|
/**
|
|
96
129
|
* @internal
|
|
97
130
|
*/
|
|
98
131
|
_def: ProcedureBuilderDef<TMeta>;
|
|
99
132
|
}
|
|
100
133
|
type ProcedureBuilderResolver = (opts: ProcedureResolverOptions<any, any, any, any>) => Promise<unknown>;
|
|
101
|
-
export declare function createBuilder<TContext, TMeta>(initDef?: Partial<AnyProcedureBuilderDef>): ProcedureBuilder<TContext, TMeta, object, UnsetMarker, UnsetMarker, UnsetMarker, UnsetMarker>;
|
|
134
|
+
export declare function createBuilder<TContext, TMeta>(initDef?: Partial<AnyProcedureBuilderDef>): ProcedureBuilder<TContext, TMeta, object, UnsetMarker, UnsetMarker, UnsetMarker, UnsetMarker, false>;
|
|
102
135
|
/**
|
|
103
136
|
* @internal
|
|
104
137
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/procedureBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAEnB,MAAM,cAAc,CAAC;AAMtB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEpD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/procedureBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,12 +88,18 @@ function createBuilder(initDef = {}) {
|
|
|
88
88
|
..._def,
|
|
89
89
|
type: 'subscription'
|
|
90
90
|
}, resolver);
|
|
91
|
+
},
|
|
92
|
+
experimental_caller (caller) {
|
|
93
|
+
return createNewBuilder(_def, {
|
|
94
|
+
caller
|
|
95
|
+
});
|
|
91
96
|
}
|
|
92
97
|
};
|
|
93
98
|
return builder;
|
|
94
99
|
}
|
|
95
100
|
function createResolver(_def, resolver) {
|
|
96
101
|
const finalBuilder = createNewBuilder(_def, {
|
|
102
|
+
type: _def.type,
|
|
97
103
|
resolver,
|
|
98
104
|
middlewares: [
|
|
99
105
|
async function resolveMiddleware(opts) {
|
|
@@ -107,7 +113,20 @@ function createResolver(_def, resolver) {
|
|
|
107
113
|
}
|
|
108
114
|
]
|
|
109
115
|
});
|
|
110
|
-
|
|
116
|
+
const invoke = createProcedureCaller(finalBuilder._def);
|
|
117
|
+
const callerOverride = finalBuilder._def.caller;
|
|
118
|
+
if (!callerOverride) {
|
|
119
|
+
return invoke;
|
|
120
|
+
}
|
|
121
|
+
const callerWrapper = (...args)=>{
|
|
122
|
+
return callerOverride({
|
|
123
|
+
args,
|
|
124
|
+
invoke,
|
|
125
|
+
_def: finalBuilder._def
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
callerWrapper._def = finalBuilder._def;
|
|
129
|
+
return callerWrapper;
|
|
111
130
|
}
|
|
112
131
|
const codeblock = `
|
|
113
132
|
This is a client-only function.
|
|
@@ -86,12 +86,18 @@ function createBuilder(initDef = {}) {
|
|
|
86
86
|
..._def,
|
|
87
87
|
type: 'subscription'
|
|
88
88
|
}, resolver);
|
|
89
|
+
},
|
|
90
|
+
experimental_caller (caller) {
|
|
91
|
+
return createNewBuilder(_def, {
|
|
92
|
+
caller
|
|
93
|
+
});
|
|
89
94
|
}
|
|
90
95
|
};
|
|
91
96
|
return builder;
|
|
92
97
|
}
|
|
93
98
|
function createResolver(_def, resolver) {
|
|
94
99
|
const finalBuilder = createNewBuilder(_def, {
|
|
100
|
+
type: _def.type,
|
|
95
101
|
resolver,
|
|
96
102
|
middlewares: [
|
|
97
103
|
async function resolveMiddleware(opts) {
|
|
@@ -105,7 +111,20 @@ function createResolver(_def, resolver) {
|
|
|
105
111
|
}
|
|
106
112
|
]
|
|
107
113
|
});
|
|
108
|
-
|
|
114
|
+
const invoke = createProcedureCaller(finalBuilder._def);
|
|
115
|
+
const callerOverride = finalBuilder._def.caller;
|
|
116
|
+
if (!callerOverride) {
|
|
117
|
+
return invoke;
|
|
118
|
+
}
|
|
119
|
+
const callerWrapper = (...args)=>{
|
|
120
|
+
return callerOverride({
|
|
121
|
+
args,
|
|
122
|
+
invoke,
|
|
123
|
+
_def: finalBuilder._def
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
callerWrapper._def = finalBuilder._def;
|
|
127
|
+
return callerWrapper;
|
|
109
128
|
}
|
|
110
129
|
const codeblock = `
|
|
111
130
|
This is a client-only function.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Observable } from '../observable';
|
|
2
2
|
import { TRPCError } from './error/TRPCError';
|
|
3
|
-
import type { AnyProcedure, inferProcedureInput } from './procedure';
|
|
3
|
+
import type { AnyProcedure, ErrorHandlerOptions, inferProcedureInput } from './procedure';
|
|
4
4
|
import type { ProcedureCallOptions } from './procedureBuilder';
|
|
5
5
|
import type { AnyRootTypes, RootConfig } from './rootConfig';
|
|
6
6
|
import type { MaybePromise } from './types';
|
|
@@ -14,6 +14,10 @@ type DecorateProcedure<TProcedure extends AnyProcedure> = (input: inferProcedure
|
|
|
14
14
|
export type DecorateRouterRecord<TRecord extends RouterRecord> = {
|
|
15
15
|
[TKey in keyof TRecord]: TRecord[TKey] extends AnyProcedure ? DecorateProcedure<TRecord[TKey]> : TRecord[TKey] extends RouterRecord ? DecorateRouterRecord<TRecord[TKey]> : never;
|
|
16
16
|
};
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export type RouterCallerErrorHandler<TContext> = (opts: ErrorHandlerOptions<TContext>) => void;
|
|
17
21
|
/**
|
|
18
22
|
* @internal
|
|
19
23
|
*/
|
|
@@ -23,7 +27,9 @@ export type RouterCaller<TRoot extends AnyRootTypes, TRecord extends RouterRecor
|
|
|
23
27
|
* If passing a function, we recommend it's a cached function
|
|
24
28
|
* e.g. wrapped in `React.cache` to avoid unnecessary computations
|
|
25
29
|
*/
|
|
26
|
-
ctx: TRoot['ctx'] | (() => MaybePromise<TRoot['ctx']>)
|
|
30
|
+
ctx: TRoot['ctx'] | (() => MaybePromise<TRoot['ctx']>), options?: {
|
|
31
|
+
onError?: RouterCallerErrorHandler<TRoot['ctx']>;
|
|
32
|
+
}) => DecorateRouterRecord<TRecord>;
|
|
27
33
|
export interface Router<TRoot extends AnyRootTypes, TRecord extends RouterRecord> {
|
|
28
34
|
_def: {
|
|
29
35
|
_config: RootConfig<TRoot>;
|
|
@@ -63,8 +69,8 @@ export declare function createRouterFactory<TRoot extends AnyRootTypes>(config:
|
|
|
63
69
|
export declare function callProcedure(opts: ProcedureCallOptions & {
|
|
64
70
|
procedures: RouterRecord;
|
|
65
71
|
allowMethodOverride?: boolean;
|
|
66
|
-
}): Promise<
|
|
67
|
-
export declare function createCallerFactory<TRoot extends AnyRootTypes>(): <TRecord extends RouterRecord>(router: Router<TRoot, TRecord>) => RouterCaller<TRoot, TRecord>;
|
|
72
|
+
}): Promise<any>;
|
|
73
|
+
export declare function createCallerFactory<TRoot extends AnyRootTypes>(): <TRecord extends RouterRecord>(router: Pick<Router<TRoot, TRecord>, '_def'>) => RouterCaller<TRoot, TRecord>;
|
|
68
74
|
/** @internal */
|
|
69
75
|
type MergeRouters<TRouters extends AnyRouter[], TRoot extends AnyRootTypes = TRouters[0]['_def']['_config']['$types'], TRecord extends RouterRecord = {}> = TRouters extends [
|
|
70
76
|
infer Head extends AnyRouter,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,19 +77,9 @@ const emptyRouter = {
|
|
|
77
77
|
return {
|
|
78
78
|
...record,
|
|
79
79
|
_def,
|
|
80
|
-
createCaller (
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const procedure = _def.procedures[fullPath];
|
|
84
|
-
return procedure({
|
|
85
|
-
path: fullPath,
|
|
86
|
-
getRawInput: async ()=>args[0],
|
|
87
|
-
ctx,
|
|
88
|
-
type: procedure._def.type
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
return proxy;
|
|
92
|
-
}
|
|
80
|
+
createCaller: createCallerFactory()({
|
|
81
|
+
_def
|
|
82
|
+
})
|
|
93
83
|
};
|
|
94
84
|
}
|
|
95
85
|
return createRouterInner;
|
|
@@ -113,24 +103,29 @@ function isProcedure(procedureOrRouter) {
|
|
|
113
103
|
function createCallerFactory() {
|
|
114
104
|
return function createCallerInner(router) {
|
|
115
105
|
const _def = router._def;
|
|
116
|
-
return function createCaller(
|
|
117
|
-
const proxy = createProxy.createRecursiveProxy(({ path , args })=>{
|
|
106
|
+
return function createCaller(ctxOrCallback, options) {
|
|
107
|
+
const proxy = createProxy.createRecursiveProxy(async ({ path , args })=>{
|
|
118
108
|
const fullPath = path.join('.');
|
|
119
109
|
const procedure = _def.procedures[fullPath];
|
|
120
|
-
|
|
110
|
+
let ctx = undefined;
|
|
111
|
+
try {
|
|
112
|
+
ctx = utils.isFunction(ctxOrCallback) ? await Promise.resolve(ctxOrCallback()) : ctxOrCallback;
|
|
113
|
+
return await procedure({
|
|
121
114
|
path: fullPath,
|
|
122
115
|
getRawInput: async ()=>args[0],
|
|
123
116
|
ctx,
|
|
124
117
|
type: procedure._def.type
|
|
125
118
|
});
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
119
|
+
} catch (cause) {
|
|
120
|
+
options?.onError?.({
|
|
121
|
+
ctx,
|
|
122
|
+
error: TRPCError.getTRPCErrorFromUnknown(cause),
|
|
123
|
+
input: args[0],
|
|
124
|
+
path: fullPath,
|
|
125
|
+
type: procedure._def.type
|
|
126
|
+
});
|
|
127
|
+
throw cause;
|
|
132
128
|
}
|
|
133
|
-
return callProc(maybeContext);
|
|
134
129
|
});
|
|
135
130
|
return proxy;
|
|
136
131
|
};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { createRecursiveProxy } from './createProxy.mjs';
|
|
2
2
|
import { defaultFormatter } from './error/formatter.mjs';
|
|
3
|
-
import { TRPCError } from './error/TRPCError.mjs';
|
|
3
|
+
import { TRPCError, getTRPCErrorFromUnknown } from './error/TRPCError.mjs';
|
|
4
4
|
import { defaultTransformer } from './transformer.mjs';
|
|
5
|
-
import { mergeWithoutOverrides, omitPrototype } from './utils.mjs';
|
|
5
|
+
import { mergeWithoutOverrides, omitPrototype, isFunction } from './utils.mjs';
|
|
6
6
|
|
|
7
7
|
function isRouter(procedureOrRouter) {
|
|
8
8
|
return procedureOrRouter._def && 'router' in procedureOrRouter._def;
|
|
@@ -75,19 +75,9 @@ const emptyRouter = {
|
|
|
75
75
|
return {
|
|
76
76
|
...record,
|
|
77
77
|
_def,
|
|
78
|
-
createCaller (
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
const procedure = _def.procedures[fullPath];
|
|
82
|
-
return procedure({
|
|
83
|
-
path: fullPath,
|
|
84
|
-
getRawInput: async ()=>args[0],
|
|
85
|
-
ctx,
|
|
86
|
-
type: procedure._def.type
|
|
87
|
-
});
|
|
88
|
-
});
|
|
89
|
-
return proxy;
|
|
90
|
-
}
|
|
78
|
+
createCaller: createCallerFactory()({
|
|
79
|
+
_def
|
|
80
|
+
})
|
|
91
81
|
};
|
|
92
82
|
}
|
|
93
83
|
return createRouterInner;
|
|
@@ -111,24 +101,29 @@ function isProcedure(procedureOrRouter) {
|
|
|
111
101
|
function createCallerFactory() {
|
|
112
102
|
return function createCallerInner(router) {
|
|
113
103
|
const _def = router._def;
|
|
114
|
-
return function createCaller(
|
|
115
|
-
const proxy = createRecursiveProxy(({ path , args })=>{
|
|
104
|
+
return function createCaller(ctxOrCallback, options) {
|
|
105
|
+
const proxy = createRecursiveProxy(async ({ path , args })=>{
|
|
116
106
|
const fullPath = path.join('.');
|
|
117
107
|
const procedure = _def.procedures[fullPath];
|
|
118
|
-
|
|
108
|
+
let ctx = undefined;
|
|
109
|
+
try {
|
|
110
|
+
ctx = isFunction(ctxOrCallback) ? await Promise.resolve(ctxOrCallback()) : ctxOrCallback;
|
|
111
|
+
return await procedure({
|
|
119
112
|
path: fullPath,
|
|
120
113
|
getRawInput: async ()=>args[0],
|
|
121
114
|
ctx,
|
|
122
115
|
type: procedure._def.type
|
|
123
116
|
});
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
117
|
+
} catch (cause) {
|
|
118
|
+
options?.onError?.({
|
|
119
|
+
ctx,
|
|
120
|
+
error: getTRPCErrorFromUnknown(cause),
|
|
121
|
+
input: args[0],
|
|
122
|
+
path: fullPath,
|
|
123
|
+
type: procedure._def.type
|
|
124
|
+
});
|
|
125
|
+
throw cause;
|
|
130
126
|
}
|
|
131
|
-
return callProc(maybeContext);
|
|
132
127
|
});
|
|
133
128
|
return proxy;
|
|
134
129
|
};
|
|
@@ -8,9 +8,12 @@ export declare function mergeWithoutOverrides<TType extends Record<string, unkno
|
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
10
|
export declare function isObject(value: unknown): value is Record<string, unknown>;
|
|
11
|
+
type AnyFn = (...args: any[]) => unknown;
|
|
12
|
+
export declare function isFunction(fn: unknown): fn is AnyFn;
|
|
11
13
|
/**
|
|
12
14
|
* Create an object without inheriting anything from `Object.prototype`
|
|
13
15
|
* @internal
|
|
14
16
|
*/
|
|
15
17
|
export declare function omitPrototype<TObj extends Record<string, unknown>>(obj: TObj): TObj;
|
|
18
|
+
export {};
|
|
16
19
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzE,IAAI,EAAE,KAAK,EACX,GAAG,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,GACxB,KAAK,CAYP;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,GAAG,EAAE,IAAI,GACR,IAAI,CAEN"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzE,IAAI,EAAE,KAAK,EACX,GAAG,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,GACxB,KAAK,CAYP;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED,KAAK,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;AACzC,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,KAAK,CAEnD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,GAAG,EAAE,IAAI,GACR,IAAI,CAEN"}
|
|
@@ -21,6 +21,9 @@
|
|
|
21
21
|
*/ function isObject(value) {
|
|
22
22
|
return !!value && !Array.isArray(value) && typeof value === 'object';
|
|
23
23
|
}
|
|
24
|
+
function isFunction(fn) {
|
|
25
|
+
return typeof fn === 'function';
|
|
26
|
+
}
|
|
24
27
|
/**
|
|
25
28
|
* Create an object without inheriting anything from `Object.prototype`
|
|
26
29
|
* @internal
|
|
@@ -28,6 +31,7 @@
|
|
|
28
31
|
return Object.assign(Object.create(null), obj);
|
|
29
32
|
}
|
|
30
33
|
|
|
34
|
+
exports.isFunction = isFunction;
|
|
31
35
|
exports.isObject = isObject;
|
|
32
36
|
exports.mergeWithoutOverrides = mergeWithoutOverrides;
|
|
33
37
|
exports.omitPrototype = omitPrototype;
|
|
@@ -19,6 +19,9 @@
|
|
|
19
19
|
*/ function isObject(value) {
|
|
20
20
|
return !!value && !Array.isArray(value) && typeof value === 'object';
|
|
21
21
|
}
|
|
22
|
+
function isFunction(fn) {
|
|
23
|
+
return typeof fn === 'function';
|
|
24
|
+
}
|
|
22
25
|
/**
|
|
23
26
|
* Create an object without inheriting anything from `Object.prototype`
|
|
24
27
|
* @internal
|
|
@@ -26,4 +29,4 @@
|
|
|
26
29
|
return Object.assign(Object.create(null), obj);
|
|
27
30
|
}
|
|
28
31
|
|
|
29
|
-
export { isObject, mergeWithoutOverrides, omitPrototype };
|
|
32
|
+
export { isFunction, isObject, mergeWithoutOverrides, omitPrototype };
|
|
@@ -60,6 +60,7 @@ exports.getDataTransformer = transformer.getDataTransformer;
|
|
|
60
60
|
exports.transformResult = transformer.transformResult;
|
|
61
61
|
exports.transformTRPCResponse = transformer.transformTRPCResponse;
|
|
62
62
|
exports.ERROR_SYMBOL = types.ERROR_SYMBOL;
|
|
63
|
+
exports.isFunction = utils.isFunction;
|
|
63
64
|
exports.isObject = utils.isObject;
|
|
64
65
|
exports.mergeWithoutOverrides = utils.mergeWithoutOverrides;
|
|
65
66
|
exports.omitPrototype = utils.omitPrototype;
|
|
@@ -18,4 +18,4 @@ export { TRPC_ERROR_CODES_BY_KEY, TRPC_ERROR_CODES_BY_NUMBER } from './unstable-
|
|
|
18
18
|
export { parseTRPCMessage } from './unstable-core-do-not-import/rpc/parseTRPCMessage.mjs';
|
|
19
19
|
export { defaultTransformer, getDataTransformer, transformResult, transformTRPCResponse } from './unstable-core-do-not-import/transformer.mjs';
|
|
20
20
|
export { ERROR_SYMBOL } from './unstable-core-do-not-import/types.mjs';
|
|
21
|
-
export { isObject, mergeWithoutOverrides, omitPrototype } from './unstable-core-do-not-import/utils.mjs';
|
|
21
|
+
export { isFunction, isObject, mergeWithoutOverrides, omitPrototype } from './unstable-core-do-not-import/utils.mjs';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/server",
|
|
3
|
-
"version": "11.0.0-next.
|
|
3
|
+
"version": "11.0.0-next.323+681d94abe",
|
|
4
4
|
"description": "The tRPC server library",
|
|
5
5
|
"author": "KATT",
|
|
6
6
|
"license": "MIT",
|
|
@@ -156,5 +156,5 @@
|
|
|
156
156
|
"funding": [
|
|
157
157
|
"https://trpc.io/sponsor"
|
|
158
158
|
],
|
|
159
|
-
"gitHead": "
|
|
159
|
+
"gitHead": "681d94abee8d7dcc90c77cb44c6ca54897be2079"
|
|
160
160
|
}
|
|
@@ -9,7 +9,11 @@ export type {
|
|
|
9
9
|
HTTPHeaders,
|
|
10
10
|
HTTPRequest,
|
|
11
11
|
HTTPResponse,
|
|
12
|
-
|
|
12
|
+
/**
|
|
13
|
+
* @deprecated Use `HTTPErrorHandler` instead
|
|
14
|
+
*/
|
|
15
|
+
HTTPErrorHandler as OnErrorFunction,
|
|
16
|
+
HTTPErrorHandler,
|
|
13
17
|
ProcedureCall,
|
|
14
18
|
ResolveHTTPRequestOptionsContextFn,
|
|
15
19
|
ResponseChunk,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TRPCError } from '../error/TRPCError';
|
|
2
|
-
import type { ProcedureType } from '../procedure';
|
|
2
|
+
import type { ErrorHandlerOptions, ProcedureType } from '../procedure';
|
|
3
3
|
import type {
|
|
4
4
|
AnyRouter,
|
|
5
5
|
inferRouterContext,
|
|
@@ -86,24 +86,23 @@ export type TRPCRequestInfo = {
|
|
|
86
86
|
export type ResolveHTTPRequestOptionsContextFn<TRouter extends AnyRouter> =
|
|
87
87
|
(opts: { info: TRPCRequestInfo }) => Promise<inferRouterContext<TRouter>>;
|
|
88
88
|
|
|
89
|
+
interface HTTPErrorHandlerOptions<TRouter extends AnyRouter, TRequest>
|
|
90
|
+
extends ErrorHandlerOptions<inferRouterContext<TRouter>> {
|
|
91
|
+
req: TRequest;
|
|
92
|
+
}
|
|
89
93
|
/**
|
|
90
94
|
* @internal
|
|
91
95
|
*/
|
|
92
|
-
export type
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
path: string | undefined;
|
|
96
|
-
req: TRequest;
|
|
97
|
-
input: unknown;
|
|
98
|
-
ctx: inferRouterContext<TRouter> | undefined;
|
|
99
|
-
}) => void;
|
|
96
|
+
export type HTTPErrorHandler<TRouter extends AnyRouter, TRequest> = (
|
|
97
|
+
opts: HTTPErrorHandlerOptions<TRouter, TRequest>,
|
|
98
|
+
) => void;
|
|
100
99
|
|
|
101
100
|
/**
|
|
102
101
|
* Base interface for any response handler
|
|
103
102
|
* @internal
|
|
104
103
|
*/
|
|
105
104
|
export interface BaseHandlerOptions<TRouter extends AnyRouter, TRequest> {
|
|
106
|
-
onError?:
|
|
105
|
+
onError?: HTTPErrorHandler<TRouter, TRequest>;
|
|
107
106
|
/**
|
|
108
107
|
* @deprecated use `allowBatching` instead, this will be removed in v12
|
|
109
108
|
*/
|