@trpc/server 10.43.0 → 11.0.0-next.91
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/adapters/aws-lambda/index.d.ts.map +1 -1
- package/dist/adapters/aws-lambda/index.js +6 -4
- package/dist/adapters/aws-lambda/index.mjs +6 -4
- package/dist/adapters/aws-lambda/utils.d.ts +3 -1
- package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
- package/dist/adapters/express.js +4 -3
- package/dist/adapters/express.mjs +4 -3
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/index.js +8 -5
- package/dist/adapters/fastify/index.mjs +8 -5
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/index.js +6 -4
- package/dist/adapters/fetch/index.mjs +6 -4
- package/dist/adapters/fetch/types.d.ts +2 -1
- package/dist/adapters/fetch/types.d.ts.map +1 -1
- package/dist/adapters/next.js +4 -3
- package/dist/adapters/next.mjs +4 -3
- package/dist/adapters/node-http/index.js +4 -3
- package/dist/adapters/node-http/index.mjs +4 -3
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/types.d.ts +2 -1
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts +1 -6
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/standalone.js +8 -19
- package/dist/adapters/standalone.mjs +8 -19
- package/dist/adapters/ws.d.ts +25 -4
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +67 -14
- package/dist/adapters/ws.mjs +58 -6
- package/dist/bundle-analysis.json +910 -0
- package/dist/config-5de7eae5.js +10 -0
- package/dist/config-60fc2667.js +7 -0
- package/dist/config-ab4c1c6b.mjs +5 -0
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/initTRPC.d.ts +1 -1
- package/dist/core/internals/builderTypes.d.ts +11 -0
- package/dist/core/internals/builderTypes.d.ts.map +1 -0
- package/dist/core/internals/getParseFn.d.ts +0 -5
- package/dist/core/internals/getParseFn.d.ts.map +1 -1
- package/dist/core/internals/mergeRouters.d.ts +0 -3
- package/dist/core/internals/mergeRouters.d.ts.map +1 -1
- package/dist/core/internals/procedureBuilder.d.ts +24 -27
- package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
- package/dist/core/internals/utils.d.ts +7 -8
- package/dist/core/internals/utils.d.ts.map +1 -1
- package/dist/core/middleware.d.ts +16 -15
- package/dist/core/middleware.d.ts.map +1 -1
- package/dist/core/procedure.d.ts +41 -42
- package/dist/core/procedure.d.ts.map +1 -1
- package/dist/core/router.d.ts +9 -56
- package/dist/core/router.d.ts.map +1 -1
- package/dist/core/types.d.ts +7 -12
- package/dist/core/types.d.ts.map +1 -1
- package/dist/http/index.js +3 -2
- package/dist/http/index.mjs +3 -2
- package/dist/http/resolveHTTPResponse.d.ts +3 -3
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/http/types.d.ts +22 -1
- package/dist/http/types.d.ts.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +24 -811
- package/dist/index.mjs +15 -802
- package/dist/{nodeHTTPRequestHandler-cf01c646.mjs → nodeHTTPRequestHandler-0986c5a1.mjs} +8 -3
- package/dist/{nodeHTTPRequestHandler-b7d358fe.js → nodeHTTPRequestHandler-18f3370e.js} +8 -3
- package/dist/{nodeHTTPRequestHandler-9781faee.js → nodeHTTPRequestHandler-388f5fce.js} +8 -3
- package/dist/{resolveHTTPResponse-68c8befb.mjs → resolveHTTPResponse-55c648bd.mjs} +14 -12
- package/dist/{resolveHTTPResponse-79011e44.js → resolveHTTPResponse-5def1b0c.js} +15 -13
- package/dist/{resolveHTTPResponse-051b3a40.js → resolveHTTPResponse-8d474952.js} +12 -12
- package/dist/{config-3ab6b85e.js → router-3c22fe56.js} +9 -46
- package/dist/{config-4c0f8e88.mjs → router-5274e533.mjs} +10 -45
- package/dist/{config-f356f2fd.js → router-a1635eab.js} +9 -44
- package/dist/rpc/envelopes.d.ts +1 -5
- package/dist/rpc/envelopes.d.ts.map +1 -1
- package/dist/rpc/index.d.ts +0 -1
- package/dist/rpc/index.d.ts.map +1 -1
- package/dist/rpc/index.js +0 -2
- package/dist/rpc/index.mjs +0 -1
- package/dist/shared/getErrorShape.d.ts +1 -1
- package/dist/shared/getErrorShape.d.ts.map +1 -1
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/jsonify.d.ts +3 -2
- package/dist/shared/jsonify.d.ts.map +1 -1
- package/dist/shared/transformTRPCResponse.d.ts +1 -1
- package/dist/shared/transformTRPCResponse.d.ts.map +1 -1
- package/dist/shared/types.d.ts +6 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/unstableInternalsExport-10cc2bae.mjs +353 -0
- package/dist/unstableInternalsExport-a064a7dd.js +349 -0
- package/dist/unstableInternalsExport-bf8496ea.js +363 -0
- package/dist/unstableInternalsExport.d.ts +11 -0
- package/dist/unstableInternalsExport.d.ts.map +1 -0
- package/dist/unstableInternalsExport.js +16 -0
- package/dist/unstableInternalsExport.mjs +5 -0
- package/package.json +9 -3
- package/src/adapters/aws-lambda/index.ts +11 -7
- package/src/adapters/aws-lambda/utils.ts +3 -0
- package/src/adapters/fastify/fastifyRequestHandler.ts +9 -5
- package/src/adapters/fetch/fetchRequestHandler.ts +9 -3
- package/src/adapters/fetch/types.ts +2 -1
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +15 -4
- package/src/adapters/node-http/types.ts +2 -1
- package/src/adapters/standalone.ts +4 -22
- package/src/adapters/ws.ts +110 -14
- package/src/core/index.ts +1 -0
- package/src/core/internals/builderTypes.ts +11 -0
- package/src/core/internals/getParseFn.ts +0 -13
- package/src/core/internals/mergeRouters.ts +0 -4
- package/src/core/internals/procedureBuilder.ts +50 -70
- package/src/core/internals/utils.ts +11 -8
- package/src/core/middleware.ts +37 -31
- package/src/core/procedure.ts +46 -54
- package/src/core/router.ts +19 -117
- package/src/core/types.ts +11 -20
- package/src/http/resolveHTTPResponse.ts +17 -14
- package/src/http/types.ts +24 -1
- package/src/index.ts +16 -2
- package/src/rpc/envelopes.ts +1 -6
- package/src/rpc/index.ts +0 -1
- package/src/shared/getErrorShape.ts +2 -1
- package/src/shared/index.ts +2 -0
- package/src/shared/jsonify.ts +9 -5
- package/src/shared/transformTRPCResponse.ts +1 -1
- package/src/shared/types.ts +9 -0
- package/src/types.ts +8 -0
- package/src/unstableInternalsExport.ts +10 -0
- package/unstableInternalsExport/index.d.ts +1 -0
- package/unstableInternalsExport/index.js +1 -0
- package/adapters/zodFileSchema/index.d.ts +0 -1
- package/adapters/zodFileSchema/index.js +0 -1
- package/dist/adapters/lambda/index.d.ts +0 -12
- package/dist/adapters/lambda/index.d.ts.map +0 -1
- package/dist/deprecated/internals/middlewares.d.ts +0 -52
- package/dist/deprecated/internals/middlewares.d.ts.map +0 -1
- package/dist/deprecated/internals/procedure.d.ts +0 -96
- package/dist/deprecated/internals/procedure.d.ts.map +0 -1
- package/dist/deprecated/interop.d.ts +0 -44
- package/dist/deprecated/interop.d.ts.map +0 -1
- package/dist/deprecated/router.d.ts +0 -204
- package/dist/deprecated/router.d.ts.map +0 -1
- package/dist/internals.d.ts +0 -10
- package/dist/internals.d.ts.map +0 -1
- package/dist/parseTRPCMessage-1377f305.js +0 -56
- package/dist/parseTRPCMessage-95955211.js +0 -63
- package/dist/parseTRPCMessage-a0f17853.mjs +0 -54
- package/dist/rpc/parseTRPCMessage.d.ts +0 -5
- package/dist/rpc/parseTRPCMessage.d.ts.map +0 -1
- package/dist/subscription.d.ts +0 -13
- package/dist/subscription.d.ts.map +0 -1
- package/dist/subscription.js +0 -38
- package/dist/subscription.mjs +0 -34
- package/src/adapters/lambda/index.ts +0 -18
- package/src/deprecated/internals/middlewares.ts +0 -61
- package/src/deprecated/internals/procedure.ts +0 -411
- package/src/deprecated/interop.ts +0 -232
- package/src/deprecated/router.ts +0 -945
- package/src/internals.ts +0 -12
- package/src/rpc/parseTRPCMessage.ts +0 -84
- package/src/subscription.ts +0 -43
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { AnyRouter } from '../core';
|
|
2
|
+
import { AnyRootConfig } from '../core/internals/config';
|
|
3
|
+
export type TRPCInferrable = AnyRouter | AnyRootConfig;
|
|
4
|
+
export type inferConfig<TInferrable extends TRPCInferrable> = TInferrable extends AnyRouter ? TInferrable['_def']['_config'] : TInferrable;
|
|
5
|
+
export type inferErrorShape<TInferrable extends TRPCInferrable> = inferConfig<TInferrable>['$types']['errorShape'];
|
|
6
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,aAAa,CAAC;AACvD,MAAM,MAAM,WAAW,CAAC,WAAW,SAAS,cAAc,IACxD,WAAW,SAAS,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;AAE/E,MAAM,MAAM,eAAe,CAAC,WAAW,SAAS,cAAc,IAC5D,WAAW,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -75,4 +75,9 @@ export type Unwrap<TType> = TType extends (...args: any[]) => infer R ? ThenArg<
|
|
|
75
75
|
export type DeepPartial<TObject> = TObject extends object ? {
|
|
76
76
|
[P in keyof TObject]?: DeepPartial<TObject[P]>;
|
|
77
77
|
} : TObject;
|
|
78
|
+
/**
|
|
79
|
+
* Omits the key without removing a potential union
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
82
|
+
export type DistributiveOmit<TObj, TKey extends keyof any> = TObj extends any ? Omit<TObj, TKey> : never;
|
|
78
83
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import { d as defaultFormatter, a as defaultTransformer, c as createRouterFactory } from './router-5274e533.mjs';
|
|
2
|
+
import { T as TRPCError, g as getTRPCErrorFromUnknown } from './TRPCError-816ff32e.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/ function createMiddlewareFactory() {
|
|
7
|
+
function createMiddlewareInner(middlewares) {
|
|
8
|
+
return {
|
|
9
|
+
_middlewares: middlewares,
|
|
10
|
+
unstable_pipe (middlewareBuilderOrFn) {
|
|
11
|
+
const pipedMiddleware = '_middlewares' in middlewareBuilderOrFn ? middlewareBuilderOrFn._middlewares : [
|
|
12
|
+
middlewareBuilderOrFn
|
|
13
|
+
];
|
|
14
|
+
return createMiddlewareInner([
|
|
15
|
+
...middlewares,
|
|
16
|
+
...pipedMiddleware
|
|
17
|
+
]);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
function createMiddleware(fn) {
|
|
22
|
+
return createMiddlewareInner([
|
|
23
|
+
fn
|
|
24
|
+
]);
|
|
25
|
+
}
|
|
26
|
+
return createMiddleware;
|
|
27
|
+
}
|
|
28
|
+
const experimental_standaloneMiddleware = ()=>({
|
|
29
|
+
create: createMiddlewareFactory()
|
|
30
|
+
});
|
|
31
|
+
function isPlainObject(obj) {
|
|
32
|
+
return obj && typeof obj === 'object' && !Array.isArray(obj);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @internal
|
|
36
|
+
* Please note, `trpc-openapi` uses this function.
|
|
37
|
+
*/ function createInputMiddleware(parse) {
|
|
38
|
+
const inputMiddleware = async (opts)=>{
|
|
39
|
+
let parsedInput;
|
|
40
|
+
const rawInput = await opts.getRawInput();
|
|
41
|
+
try {
|
|
42
|
+
parsedInput = await parse(rawInput);
|
|
43
|
+
} catch (cause) {
|
|
44
|
+
throw new TRPCError({
|
|
45
|
+
code: 'BAD_REQUEST',
|
|
46
|
+
cause
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
// Multiple input parsers
|
|
50
|
+
const combinedInput = isPlainObject(opts.input) && isPlainObject(parsedInput) ? {
|
|
51
|
+
...opts.input,
|
|
52
|
+
...parsedInput
|
|
53
|
+
} : parsedInput;
|
|
54
|
+
return opts.next({
|
|
55
|
+
input: combinedInput
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
inputMiddleware._type = 'input';
|
|
59
|
+
return inputMiddleware;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* @internal
|
|
63
|
+
*/ function createOutputMiddleware(parse) {
|
|
64
|
+
const outputMiddleware = async ({ next })=>{
|
|
65
|
+
const result = await next();
|
|
66
|
+
if (!result.ok) {
|
|
67
|
+
// pass through failures without validating
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
try {
|
|
71
|
+
const data = await parse(result.data);
|
|
72
|
+
return {
|
|
73
|
+
...result,
|
|
74
|
+
data
|
|
75
|
+
};
|
|
76
|
+
} catch (cause) {
|
|
77
|
+
throw new TRPCError({
|
|
78
|
+
message: 'Output validation failed',
|
|
79
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
80
|
+
cause
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
outputMiddleware._type = 'output';
|
|
85
|
+
return outputMiddleware;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Ensures there are no duplicate keys when building a procedure.
|
|
90
|
+
*/ function mergeWithoutOverrides(obj1, ...objs) {
|
|
91
|
+
const newObj = Object.assign(Object.create(null), obj1);
|
|
92
|
+
for (const overrides of objs){
|
|
93
|
+
for(const key in overrides){
|
|
94
|
+
if (key in newObj && newObj[key] !== overrides[key]) {
|
|
95
|
+
throw new Error(`Duplicate key ${key}`);
|
|
96
|
+
}
|
|
97
|
+
newObj[key] = overrides[key];
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return newObj;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
function mergeRouters(...routerList) {
|
|
104
|
+
const record = mergeWithoutOverrides({}, ...routerList.map((r)=>r._def.record));
|
|
105
|
+
const errorFormatter = routerList.reduce((currentErrorFormatter, nextRouter)=>{
|
|
106
|
+
if (nextRouter._def._config.errorFormatter && nextRouter._def._config.errorFormatter !== defaultFormatter) {
|
|
107
|
+
if (currentErrorFormatter !== defaultFormatter && currentErrorFormatter !== nextRouter._def._config.errorFormatter) {
|
|
108
|
+
throw new Error('You seem to have several error formatters');
|
|
109
|
+
}
|
|
110
|
+
return nextRouter._def._config.errorFormatter;
|
|
111
|
+
}
|
|
112
|
+
return currentErrorFormatter;
|
|
113
|
+
}, defaultFormatter);
|
|
114
|
+
const transformer = routerList.reduce((prev, current)=>{
|
|
115
|
+
if (current._def._config.transformer && current._def._config.transformer !== defaultTransformer) {
|
|
116
|
+
if (prev !== defaultTransformer && prev !== current._def._config.transformer) {
|
|
117
|
+
throw new Error('You seem to have several transformers');
|
|
118
|
+
}
|
|
119
|
+
return current._def._config.transformer;
|
|
120
|
+
}
|
|
121
|
+
return prev;
|
|
122
|
+
}, defaultTransformer);
|
|
123
|
+
const router = createRouterFactory({
|
|
124
|
+
errorFormatter,
|
|
125
|
+
transformer,
|
|
126
|
+
isDev: routerList.some((r)=>r._def._config.isDev),
|
|
127
|
+
allowOutsideOfServer: routerList.some((r)=>r._def._config.allowOutsideOfServer),
|
|
128
|
+
isServer: routerList.some((r)=>r._def._config.isServer),
|
|
129
|
+
$types: routerList[0]?._def._config.$types
|
|
130
|
+
})(record);
|
|
131
|
+
return router;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
function getParseFn(procedureParser) {
|
|
135
|
+
const parser = procedureParser;
|
|
136
|
+
if (typeof parser === 'function') {
|
|
137
|
+
// ParserCustomValidatorEsque
|
|
138
|
+
return parser;
|
|
139
|
+
}
|
|
140
|
+
if (typeof parser.parseAsync === 'function') {
|
|
141
|
+
// ParserZodEsque
|
|
142
|
+
return parser.parseAsync.bind(parser);
|
|
143
|
+
}
|
|
144
|
+
if (typeof parser.parse === 'function') {
|
|
145
|
+
// ParserZodEsque
|
|
146
|
+
// ParserValibotEsque (<= v0.12.X)
|
|
147
|
+
return parser.parse.bind(parser);
|
|
148
|
+
}
|
|
149
|
+
if (typeof parser.validateSync === 'function') {
|
|
150
|
+
// ParserYupEsque
|
|
151
|
+
return parser.validateSync.bind(parser);
|
|
152
|
+
}
|
|
153
|
+
if (typeof parser.create === 'function') {
|
|
154
|
+
// ParserSuperstructEsque
|
|
155
|
+
return parser.create.bind(parser);
|
|
156
|
+
}
|
|
157
|
+
if (typeof parser.assert === 'function') {
|
|
158
|
+
// ParserScaleEsque
|
|
159
|
+
return (value)=>{
|
|
160
|
+
parser.assert(value);
|
|
161
|
+
return value;
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
throw new Error('Could not find a validator fn');
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* @internal
|
|
169
|
+
*/ const middlewareMarker = 'middlewareMarker';
|
|
170
|
+
/**
|
|
171
|
+
* @internal
|
|
172
|
+
*/ const unsetMarker = Symbol('unsetMarker');
|
|
173
|
+
|
|
174
|
+
function createNewBuilder(def1, def2) {
|
|
175
|
+
const { middlewares =[] , inputs , meta , ...rest } = def2;
|
|
176
|
+
// TODO: maybe have a fn here to warn about calls
|
|
177
|
+
return createBuilder({
|
|
178
|
+
...mergeWithoutOverrides(def1, rest),
|
|
179
|
+
inputs: [
|
|
180
|
+
...def1.inputs,
|
|
181
|
+
...inputs ?? []
|
|
182
|
+
],
|
|
183
|
+
middlewares: [
|
|
184
|
+
...def1.middlewares,
|
|
185
|
+
...middlewares
|
|
186
|
+
],
|
|
187
|
+
meta: def1.meta && meta ? {
|
|
188
|
+
...def1.meta,
|
|
189
|
+
...meta
|
|
190
|
+
} : meta ?? def1.meta
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
function createBuilder(initDef = {}) {
|
|
194
|
+
const _def = {
|
|
195
|
+
procedure: true,
|
|
196
|
+
inputs: [],
|
|
197
|
+
middlewares: [],
|
|
198
|
+
...initDef
|
|
199
|
+
};
|
|
200
|
+
return {
|
|
201
|
+
_def,
|
|
202
|
+
input (input) {
|
|
203
|
+
const parser = getParseFn(input);
|
|
204
|
+
return createNewBuilder(_def, {
|
|
205
|
+
inputs: [
|
|
206
|
+
input
|
|
207
|
+
],
|
|
208
|
+
middlewares: [
|
|
209
|
+
createInputMiddleware(parser)
|
|
210
|
+
]
|
|
211
|
+
});
|
|
212
|
+
},
|
|
213
|
+
output (output) {
|
|
214
|
+
const parseOutput = getParseFn(output);
|
|
215
|
+
return createNewBuilder(_def, {
|
|
216
|
+
output,
|
|
217
|
+
middlewares: [
|
|
218
|
+
createOutputMiddleware(parseOutput)
|
|
219
|
+
]
|
|
220
|
+
});
|
|
221
|
+
},
|
|
222
|
+
meta (meta) {
|
|
223
|
+
return createNewBuilder(_def, {
|
|
224
|
+
meta: meta
|
|
225
|
+
});
|
|
226
|
+
},
|
|
227
|
+
use (middlewareBuilderOrFn) {
|
|
228
|
+
// Distinguish between a middleware builder and a middleware function
|
|
229
|
+
const middlewares = '_middlewares' in middlewareBuilderOrFn ? middlewareBuilderOrFn._middlewares : [
|
|
230
|
+
middlewareBuilderOrFn
|
|
231
|
+
];
|
|
232
|
+
return createNewBuilder(_def, {
|
|
233
|
+
middlewares: middlewares
|
|
234
|
+
});
|
|
235
|
+
},
|
|
236
|
+
query (resolver) {
|
|
237
|
+
return createResolver({
|
|
238
|
+
..._def,
|
|
239
|
+
type: 'query'
|
|
240
|
+
}, resolver);
|
|
241
|
+
},
|
|
242
|
+
mutation (resolver) {
|
|
243
|
+
return createResolver({
|
|
244
|
+
..._def,
|
|
245
|
+
type: 'mutation'
|
|
246
|
+
}, resolver);
|
|
247
|
+
},
|
|
248
|
+
subscription (resolver) {
|
|
249
|
+
return createResolver({
|
|
250
|
+
..._def,
|
|
251
|
+
type: 'subscription'
|
|
252
|
+
}, resolver);
|
|
253
|
+
}
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
function createResolver(_def, resolver) {
|
|
257
|
+
const finalBuilder = createNewBuilder(_def, {
|
|
258
|
+
resolver,
|
|
259
|
+
middlewares: [
|
|
260
|
+
async function resolveMiddleware(opts) {
|
|
261
|
+
const data = await resolver(opts);
|
|
262
|
+
return {
|
|
263
|
+
marker: middlewareMarker,
|
|
264
|
+
ok: true,
|
|
265
|
+
data,
|
|
266
|
+
ctx: opts.ctx
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
]
|
|
270
|
+
});
|
|
271
|
+
return createProcedureCaller(finalBuilder._def);
|
|
272
|
+
}
|
|
273
|
+
const codeblock = `
|
|
274
|
+
If you want to call this function on the server, you do the following:
|
|
275
|
+
This is a client-only function.
|
|
276
|
+
|
|
277
|
+
const caller = appRouter.createCaller({
|
|
278
|
+
/* ... your context */
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
const result = await caller.call('myProcedure', input);
|
|
282
|
+
`.trim();
|
|
283
|
+
function createProcedureCaller(_def) {
|
|
284
|
+
async function procedure(opts) {
|
|
285
|
+
// is direct server-side call
|
|
286
|
+
if (!opts || !('getRawInput' in opts)) {
|
|
287
|
+
throw new Error(codeblock);
|
|
288
|
+
}
|
|
289
|
+
// run the middlewares recursively with the resolver as the last one
|
|
290
|
+
const callRecursive = async (callOpts = {
|
|
291
|
+
index: 0,
|
|
292
|
+
ctx: opts.ctx
|
|
293
|
+
})=>{
|
|
294
|
+
try {
|
|
295
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
296
|
+
const middleware = _def.middlewares[callOpts.index];
|
|
297
|
+
const result = await middleware({
|
|
298
|
+
ctx: callOpts.ctx,
|
|
299
|
+
type: opts.type,
|
|
300
|
+
path: opts.path,
|
|
301
|
+
getRawInput: callOpts.getRawInput ?? opts.getRawInput,
|
|
302
|
+
meta: _def.meta,
|
|
303
|
+
input: callOpts.input,
|
|
304
|
+
next (_nextOpts) {
|
|
305
|
+
const nextOpts = _nextOpts;
|
|
306
|
+
return callRecursive({
|
|
307
|
+
index: callOpts.index + 1,
|
|
308
|
+
ctx: nextOpts && 'ctx' in nextOpts ? {
|
|
309
|
+
...callOpts.ctx,
|
|
310
|
+
...nextOpts.ctx
|
|
311
|
+
} : callOpts.ctx,
|
|
312
|
+
input: nextOpts && 'input' in nextOpts ? nextOpts.input : callOpts.input,
|
|
313
|
+
getRawInput: nextOpts && 'getRawInput' in nextOpts ? nextOpts.getRawInput : callOpts.getRawInput
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
return result;
|
|
318
|
+
} catch (cause) {
|
|
319
|
+
return {
|
|
320
|
+
ok: false,
|
|
321
|
+
error: getTRPCErrorFromUnknown(cause),
|
|
322
|
+
marker: middlewareMarker
|
|
323
|
+
};
|
|
324
|
+
}
|
|
325
|
+
};
|
|
326
|
+
// there's always at least one "next" since we wrap this.resolver in a middleware
|
|
327
|
+
const result = await callRecursive();
|
|
328
|
+
if (!result) {
|
|
329
|
+
throw new TRPCError({
|
|
330
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
331
|
+
message: 'No result from middlewares - did you forget to `return next()`?'
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
if (!result.ok) {
|
|
335
|
+
// re-throw original error
|
|
336
|
+
throw result.error;
|
|
337
|
+
}
|
|
338
|
+
return result.data;
|
|
339
|
+
}
|
|
340
|
+
procedure._def = _def;
|
|
341
|
+
// FIXME typecast shouldn't be needed - fixittt
|
|
342
|
+
return procedure;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
var unstableInternalsExport = /*#__PURE__*/Object.freeze({
|
|
346
|
+
__proto__: null,
|
|
347
|
+
mergeRouters: mergeRouters,
|
|
348
|
+
createBuilder: createBuilder,
|
|
349
|
+
middlewareMarker: middlewareMarker,
|
|
350
|
+
unsetMarker: unsetMarker
|
|
351
|
+
});
|
|
352
|
+
|
|
353
|
+
export { createMiddlewareFactory as a, createInputMiddleware as b, createBuilder as c, createOutputMiddleware as d, experimental_standaloneMiddleware as e, middlewareMarker as f, unsetMarker as g, mergeRouters as m, unstableInternalsExport as u };
|