@trpc/server 10.0.0-alpha.24 → 10.0.0-alpha.27
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/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -1
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +100 -20
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +100 -20
- package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +99 -19
- package/adapters/aws-lambda/index.d.ts +1 -0
- package/adapters/aws-lambda/index.js +1 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +1 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +25 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +7 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +25 -0
- package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +21 -0
- package/dist/{TRPCError-ddec3395.js → TRPCError-9050a68d.js} +0 -0
- package/dist/{TRPCError-7971540a.mjs → TRPCError-b7fa0c31.mjs} +0 -0
- package/dist/adapters/aws-lambda/index.d.ts +14 -0
- package/dist/adapters/aws-lambda/index.d.ts.map +1 -0
- package/dist/adapters/aws-lambda/utils.d.ts +34 -0
- package/dist/adapters/aws-lambda/utils.d.ts.map +1 -0
- package/dist/adapters/express.d.ts +1 -1
- package/dist/adapters/express.d.ts.map +1 -1
- package/dist/adapters/express.js +5 -5
- package/dist/adapters/express.mjs +5 -5
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts +1 -1
- package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -1
- package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
- package/dist/adapters/fastify/index.js +4 -4
- package/dist/adapters/fastify/index.mjs +4 -4
- package/dist/adapters/fetch/fetchRequestHandler.d.ts +1 -1
- package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
- package/dist/adapters/fetch/index.js +4 -4
- package/dist/adapters/fetch/index.mjs +4 -4
- package/dist/adapters/fetch/types.d.ts +1 -1
- package/dist/adapters/fetch/types.d.ts.map +1 -1
- package/dist/adapters/lambda/index.d.ts +12 -0
- package/dist/adapters/lambda/index.d.ts.map +1 -0
- package/dist/adapters/next.d.ts +1 -1
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +5 -5
- package/dist/adapters/next.mjs +5 -5
- package/dist/adapters/node-http/index.js +5 -5
- package/dist/adapters/node-http/index.mjs +5 -5
- package/dist/adapters/node-http/internals/getPostBody.d.ts +1 -1
- package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +1 -1
- package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
- package/dist/adapters/node-http/types.d.ts +3 -2
- package/dist/adapters/node-http/types.d.ts.map +1 -1
- package/dist/adapters/standalone.d.ts +2 -2
- package/dist/adapters/standalone.d.ts.map +1 -1
- package/dist/adapters/standalone.js +5 -5
- package/dist/adapters/standalone.mjs +5 -5
- package/dist/adapters/ws.d.ts +3 -2
- package/dist/adapters/ws.d.ts.map +1 -1
- package/dist/adapters/ws.js +4 -9
- package/dist/adapters/ws.mjs +4 -9
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/initTRPC.d.ts +82 -0
- package/dist/core/initTRPC.d.ts.map +1 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +262 -0
- package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
- package/dist/core/internals/config.d.ts +38 -0
- package/dist/core/internals/config.d.ts.map +1 -0
- package/dist/core/internals/getParseFn.d.ts +9 -0
- package/dist/core/internals/getParseFn.d.ts.map +1 -0
- package/dist/core/internals/internalProcedure.d.ts +61 -0
- package/dist/core/internals/internalProcedure.d.ts.map +1 -0
- package/dist/core/internals/mergeRouters.d.ts +3 -0
- package/dist/core/internals/mergeRouters.d.ts.map +1 -0
- package/dist/core/internals/mergeRoutersGeneric.d.ts +21 -0
- package/dist/core/internals/mergeRoutersGeneric.d.ts.map +1 -0
- package/dist/core/internals/mergeWithoutOverrides.d.ts +5 -0
- package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -0
- package/dist/core/internals/omitPrototype.d.ts +6 -0
- package/dist/core/internals/omitPrototype.d.ts.map +1 -0
- package/dist/core/internals/procedureBuilder.d.ts +72 -0
- package/dist/core/internals/procedureBuilder.d.ts.map +1 -0
- package/dist/core/internals/utils.d.ts +44 -0
- package/dist/core/internals/utils.d.ts.map +1 -0
- package/dist/core/middleware.d.ts +78 -0
- package/dist/core/middleware.d.ts.map +1 -0
- package/dist/core/parser.d.ts +25 -0
- package/dist/core/parser.d.ts.map +1 -0
- package/dist/core/procedure.d.ts +57 -0
- package/dist/core/procedure.d.ts.map +1 -0
- package/dist/core/router.d.ts +122 -0
- package/dist/core/router.d.ts.map +1 -0
- package/dist/core/types.d.ts +17 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/callProcedure.d.ts +4 -1
- package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/middlewares.d.ts +16 -1
- package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
- package/dist/{internals → deprecated/internals}/procedure.d.ts +10 -1
- package/dist/deprecated/internals/procedure.d.ts.map +1 -0
- package/dist/deprecated/interop.d.ts +34 -0
- package/dist/deprecated/interop.d.ts.map +1 -0
- package/dist/{router.d.ts → deprecated/router.d.ts} +27 -6
- package/dist/deprecated/router.d.ts.map +1 -0
- package/dist/{envelopes-1deb2fa7.mjs → envelopes-af8c2959.mjs} +12 -1
- package/dist/{envelopes-a953b930.js → envelopes-b6dd0367.js} +11 -1
- package/dist/{TRPCError.d.ts → error/TRPCError.d.ts} +2 -2
- package/dist/error/TRPCError.d.ts.map +1 -0
- package/dist/error/formatter.d.ts +33 -0
- package/dist/error/formatter.d.ts.map +1 -0
- package/dist/{internals/errors.d.ts → error/utils.d.ts} +2 -2
- package/dist/error/utils.d.ts.map +1 -0
- package/dist/http/index.d.ts +1 -1
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts +1 -1
- package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
- package/dist/http/internals/types.d.ts +10 -8
- package/dist/http/internals/types.d.ts.map +1 -1
- package/dist/http/resolveHTTPResponse.d.ts +2 -2
- package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
- package/dist/http/{responseMeta.d.ts → types.d.ts} +1 -1
- package/dist/http/types.d.ts.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +711 -30
- package/dist/index.mjs +711 -32
- package/dist/internals/transformTRPCResponse.d.ts +1 -1
- package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
- package/dist/internals/types.d.ts +23 -0
- package/dist/internals/types.d.ts.map +1 -0
- package/dist/{nodeHTTPRequestHandler-1cdb6383.mjs → nodeHTTPRequestHandler-174459c5.mjs} +2 -2
- package/dist/{nodeHTTPRequestHandler-848f07b5.js → nodeHTTPRequestHandler-6b7c8622.js} +2 -2
- package/dist/{resolveHTTPResponse-54a79e6c.mjs → resolveHTTPResponse-8657b8de.mjs} +16 -10
- package/dist/{resolveHTTPResponse-ec3dccaa.js → resolveHTTPResponse-fcc8f644.js} +17 -11
- package/dist/rpc/envelopes.d.ts +1 -1
- package/dist/rpc/envelopes.d.ts.map +1 -1
- package/dist/rpc/index.js +1 -1
- package/dist/rpc/index.mjs +1 -1
- package/dist/rpc/internals/invert.d.ts +18 -0
- package/dist/rpc/internals/invert.d.ts.map +1 -0
- package/dist/subscription.js +1 -1
- package/dist/subscription.mjs +1 -1
- package/dist/{transformTRPCResponse-333bed6c.js → transformTRPCResponse-0c261655.js} +0 -27
- package/dist/{transformTRPCResponse-e0cba527.mjs → transformTRPCResponse-747b9a68.mjs} +1 -27
- package/dist/transformer.d.ts +14 -0
- package/dist/transformer.d.ts.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +12 -4
- package/src/adapters/aws-lambda/index.ts +156 -0
- package/src/adapters/aws-lambda/utils.ts +91 -0
- package/src/adapters/express.ts +1 -1
- package/src/adapters/fastify/fastifyRequestHandler.ts +1 -1
- package/src/adapters/fastify/fastifyTRPCPlugin.ts +2 -2
- package/src/adapters/fetch/fetchRequestHandler.ts +1 -1
- package/src/adapters/fetch/types.ts +1 -1
- package/src/adapters/lambda/index.ts +18 -0
- package/src/adapters/next.ts +2 -2
- package/src/adapters/node-http/internals/getPostBody.ts +1 -1
- package/src/adapters/node-http/nodeHTTPRequestHandler.ts +3 -2
- package/src/adapters/node-http/types.ts +5 -2
- package/src/adapters/standalone.ts +1 -1
- package/src/adapters/ws.ts +7 -12
- package/src/core/index.ts +5 -0
- package/src/core/initTRPC.ts +90 -0
- package/src/core/internals/__generated__/mergeRoutersGeneric.ts +366 -0
- package/src/core/internals/config.ts +44 -0
- package/src/core/internals/getParseFn.ts +47 -0
- package/src/core/internals/internalProcedure.ts +265 -0
- package/src/core/internals/mergeRouters.ts +57 -0
- package/src/core/internals/mergeRoutersGeneric.ts +35 -0
- package/src/core/internals/mergeWithoutOverrides.ts +19 -0
- package/src/core/internals/omitPrototype.ts +9 -0
- package/src/core/internals/procedureBuilder.ts +101 -0
- package/src/core/internals/utils.ts +64 -0
- package/src/core/middleware.ts +93 -0
- package/src/core/parser.ts +45 -0
- package/src/core/procedure.ts +72 -0
- package/src/core/router.ts +358 -0
- package/src/core/types.ts +37 -0
- package/src/{internals → deprecated/internals}/callProcedure.ts +4 -1
- package/src/{internals → deprecated/internals}/middlewares.ts +17 -1
- package/src/{internals → deprecated/internals}/procedure.ts +16 -4
- package/src/deprecated/interop.ts +169 -0
- package/src/{router.ts → deprecated/router.ts} +51 -24
- package/src/{TRPCError.ts → error/TRPCError.ts} +3 -3
- package/src/error/formatter.ts +51 -0
- package/src/{internals/errors.ts → error/utils.ts} +1 -1
- package/src/http/index.ts +1 -1
- package/src/http/internals/getHTTPStatusCode.ts +1 -1
- package/src/http/internals/types.ts +10 -12
- package/src/http/resolveHTTPResponse.ts +7 -12
- package/src/http/{responseMeta.ts → types.ts} +0 -0
- package/src/index.ts +3 -2
- package/src/internals/transformTRPCResponse.ts +1 -1
- package/src/internals/types.ts +24 -0
- package/src/rpc/codes.ts +1 -1
- package/src/rpc/envelopes.ts +1 -1
- package/src/rpc/internals/invert.ts +27 -0
- package/src/subscription.ts +1 -1
- package/src/transformer.ts +28 -0
- package/src/types.ts +12 -0
- package/dist/TRPCError.d.ts.map +0 -1
- package/dist/http/responseMeta.d.ts.map +0 -1
- package/dist/internals/baseHandlerOptions.d.ts +0 -13
- package/dist/internals/baseHandlerOptions.d.ts.map +0 -1
- package/dist/internals/callProcedure.d.ts.map +0 -1
- package/dist/internals/errors.d.ts.map +0 -1
- package/dist/internals/middlewares.d.ts.map +0 -1
- package/dist/internals/onErrorFunction.d.ts +0 -11
- package/dist/internals/onErrorFunction.d.ts.map +0 -1
- package/dist/internals/procedure.d.ts.map +0 -1
- package/dist/router.d.ts.map +0 -1
- package/src/internals/baseHandlerOptions.ts +0 -13
- package/src/internals/onErrorFunction.ts +0 -11
package/dist/index.js
CHANGED
|
@@ -2,19 +2,93 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var resolveHTTPResponse = require('./resolveHTTPResponse-
|
|
6
|
-
var envelopes = require('./envelopes-
|
|
7
|
-
var TRPCError = require('./TRPCError-
|
|
8
|
-
require('./transformTRPCResponse-
|
|
5
|
+
var resolveHTTPResponse = require('./resolveHTTPResponse-fcc8f644.js');
|
|
6
|
+
var envelopes = require('./envelopes-b6dd0367.js');
|
|
7
|
+
var TRPCError = require('./TRPCError-9050a68d.js');
|
|
8
|
+
require('./transformTRPCResponse-0c261655.js');
|
|
9
9
|
|
|
10
10
|
resolveHTTPResponse.assertNotBrowser();
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @public
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* @public
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @public
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @public
|
|
28
|
+
*/
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
function getDataTransformer$1(transformer) {
|
|
38
|
+
if ('input' in transformer) {
|
|
39
|
+
return transformer;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
return {
|
|
43
|
+
input: transformer,
|
|
44
|
+
output: transformer
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
const defaultTransformer = {
|
|
55
|
+
_default: true,
|
|
56
|
+
input: {
|
|
57
|
+
serialize: obj => obj,
|
|
58
|
+
deserialize: obj => obj
|
|
59
|
+
},
|
|
60
|
+
output: {
|
|
61
|
+
serialize: obj => obj,
|
|
62
|
+
deserialize: obj => obj
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* @internal
|
|
72
|
+
*/
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
77
|
+
const defaultFormatter = ({
|
|
78
|
+
shape
|
|
79
|
+
}) => {
|
|
80
|
+
return shape;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* @deprecated
|
|
85
|
+
*/
|
|
86
|
+
const middlewareMarker$1 = 'middlewareMarker';
|
|
13
87
|
|
|
14
88
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
15
89
|
resolveHTTPResponse.assertNotBrowser();
|
|
16
90
|
|
|
17
|
-
function getParseFn(procedureParser) {
|
|
91
|
+
function getParseFn$1(procedureParser) {
|
|
18
92
|
const parser = procedureParser;
|
|
19
93
|
|
|
20
94
|
if (typeof parser === 'function') {
|
|
@@ -46,6 +120,7 @@ function getParseFn(procedureParser) {
|
|
|
46
120
|
}
|
|
47
121
|
/**
|
|
48
122
|
* @internal
|
|
123
|
+
* @deprecated
|
|
49
124
|
*/
|
|
50
125
|
|
|
51
126
|
|
|
@@ -61,12 +136,22 @@ class Procedure {
|
|
|
61
136
|
this.middlewares = opts.middlewares;
|
|
62
137
|
this.resolver = opts.resolver;
|
|
63
138
|
this.inputParser = opts.inputParser;
|
|
64
|
-
this.parseInputFn = getParseFn(this.inputParser);
|
|
139
|
+
this.parseInputFn = getParseFn$1(this.inputParser);
|
|
65
140
|
this.outputParser = opts.outputParser;
|
|
66
|
-
this.parseOutputFn = getParseFn(this.outputParser);
|
|
141
|
+
this.parseOutputFn = getParseFn$1(this.outputParser);
|
|
67
142
|
this.meta = opts.meta;
|
|
68
143
|
}
|
|
69
144
|
|
|
145
|
+
_def() {
|
|
146
|
+
return {
|
|
147
|
+
middlewares: this.middlewares,
|
|
148
|
+
resolver: this.resolver,
|
|
149
|
+
inputParser: this.inputParser,
|
|
150
|
+
outputParser: this.outputParser,
|
|
151
|
+
meta: this.meta
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
|
|
70
155
|
async parseInput(rawInput) {
|
|
71
156
|
try {
|
|
72
157
|
return await this.parseInputFn(rawInput);
|
|
@@ -107,7 +192,7 @@ class Procedure {
|
|
|
107
192
|
});
|
|
108
193
|
const data = await this.parseOutput(rawOutput);
|
|
109
194
|
return {
|
|
110
|
-
marker: middlewareMarker,
|
|
195
|
+
marker: middlewareMarker$1,
|
|
111
196
|
ok: true,
|
|
112
197
|
data,
|
|
113
198
|
ctx
|
|
@@ -138,7 +223,7 @@ class Procedure {
|
|
|
138
223
|
ctx: callOpts.ctx,
|
|
139
224
|
ok: false,
|
|
140
225
|
error: TRPCError.getErrorFromUnknown(cause),
|
|
141
|
-
marker: middlewareMarker
|
|
226
|
+
marker: middlewareMarker$1
|
|
142
227
|
};
|
|
143
228
|
}
|
|
144
229
|
}; // there's always at least one "next" since we wrap this.resolver in a middleware
|
|
@@ -200,12 +285,487 @@ function createProcedure(opts) {
|
|
|
200
285
|
});
|
|
201
286
|
}
|
|
202
287
|
|
|
288
|
+
function getParseFn(procedureParser) {
|
|
289
|
+
const parser = procedureParser;
|
|
290
|
+
|
|
291
|
+
if (typeof parser === 'function') {
|
|
292
|
+
// ProcedureParserCustomValidatorEsque
|
|
293
|
+
return parser;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
if (typeof parser.parseAsync === 'function') {
|
|
297
|
+
// ProcedureParserZodEsque
|
|
298
|
+
return parser.parseAsync.bind(parser);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
if (typeof parser.parse === 'function') {
|
|
302
|
+
// ProcedureParserZodEsque
|
|
303
|
+
return parser.parse.bind(parser);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
if (typeof parser.validateSync === 'function') {
|
|
307
|
+
// ProcedureParserYupEsque
|
|
308
|
+
return parser.validateSync.bind(parser);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
if (typeof parser.create === 'function') {
|
|
312
|
+
// ProcedureParserSuperstructEsque
|
|
313
|
+
return parser.create.bind(parser);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
throw new Error('Could not find a validator fn');
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* @deprecated only for backwards compat
|
|
320
|
+
* @internal
|
|
321
|
+
*/
|
|
322
|
+
|
|
323
|
+
function getParseFnOrPassThrough(procedureParser) {
|
|
324
|
+
if (!procedureParser) {
|
|
325
|
+
return v => v;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
return getParseFn(procedureParser);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* Ensures there are no duplicate keys when building a procedure.
|
|
333
|
+
*/
|
|
334
|
+
function mergeWithoutOverrides(obj1, ...objs) {
|
|
335
|
+
const newObj = Object.assign(Object.create(null), obj1);
|
|
336
|
+
|
|
337
|
+
for (const overrides of objs) {
|
|
338
|
+
for (const key in overrides) {
|
|
339
|
+
if (key in newObj && newObj[key] !== overrides[key]) {
|
|
340
|
+
throw new Error(`Duplicate key ${key}`);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
newObj[key] = overrides[key];
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
return newObj;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* @internal
|
|
352
|
+
*/
|
|
353
|
+
|
|
354
|
+
/**
|
|
355
|
+
* @internal
|
|
356
|
+
*/
|
|
357
|
+
|
|
358
|
+
/**
|
|
359
|
+
* @internal
|
|
360
|
+
*/
|
|
361
|
+
const middlewareMarker = 'middlewareMarker';
|
|
362
|
+
/**
|
|
363
|
+
* @internal
|
|
364
|
+
*/
|
|
365
|
+
|
|
366
|
+
/**
|
|
367
|
+
* This is the actual internal representation of a builder
|
|
368
|
+
* FIXME - I want to get rid of this and use the public API instead
|
|
369
|
+
*/
|
|
370
|
+
|
|
371
|
+
function createNewInternalBuilder(def1, def2) {
|
|
372
|
+
const {
|
|
373
|
+
middlewares = [],
|
|
374
|
+
...rest
|
|
375
|
+
} = def2; // TODO: maybe have a fn here to warn about calls
|
|
376
|
+
|
|
377
|
+
return createInternalBuilder({ ...mergeWithoutOverrides(def1, rest),
|
|
378
|
+
middlewares: [...def1.middlewares, ...middlewares]
|
|
379
|
+
});
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
const codeblock = /*#__PURE__*/`
|
|
383
|
+
If you want to call this function on the server, you do the following:
|
|
384
|
+
This is a client-only function.
|
|
385
|
+
|
|
386
|
+
const caller = appRouter.createCaller({
|
|
387
|
+
/* ... your context */
|
|
388
|
+
});
|
|
389
|
+
|
|
390
|
+
const result = await caller.call('myProcedure', input);
|
|
391
|
+
`.trim();
|
|
392
|
+
|
|
393
|
+
function createProcedureCaller(_def) {
|
|
394
|
+
const procedure = async function resolve(opts) {
|
|
395
|
+
if (!opts || !('rawInput' in opts)) {
|
|
396
|
+
throw new Error(codeblock);
|
|
397
|
+
} // run the middlewares recursively with the resolver as the last one
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
const callRecursive = async (callOpts = {
|
|
401
|
+
index: 0,
|
|
402
|
+
ctx: opts.ctx
|
|
403
|
+
}) => {
|
|
404
|
+
try {
|
|
405
|
+
const middleware = _def.middlewares[callOpts.index];
|
|
406
|
+
const result = await middleware({
|
|
407
|
+
ctx: callOpts.ctx,
|
|
408
|
+
type: opts.type,
|
|
409
|
+
path: opts.path,
|
|
410
|
+
rawInput: opts.rawInput,
|
|
411
|
+
meta: _def.meta,
|
|
412
|
+
input: callOpts.input,
|
|
413
|
+
next: async nextOpts => {
|
|
414
|
+
return await callRecursive({
|
|
415
|
+
index: callOpts.index + 1,
|
|
416
|
+
ctx: nextOpts && 'ctx' in nextOpts ? { ...callOpts.ctx,
|
|
417
|
+
...nextOpts.ctx
|
|
418
|
+
} : callOpts.ctx,
|
|
419
|
+
input: nextOpts && 'input' in nextOpts ? nextOpts.input : callOpts.input
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
});
|
|
423
|
+
return result;
|
|
424
|
+
} catch (cause) {
|
|
425
|
+
return {
|
|
426
|
+
ok: false,
|
|
427
|
+
error: TRPCError.getErrorFromUnknown(cause),
|
|
428
|
+
marker: middlewareMarker
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
}; // there's always at least one "next" since we wrap this.resolver in a middleware
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
const result = await callRecursive();
|
|
435
|
+
|
|
436
|
+
if (!result) {
|
|
437
|
+
throw new TRPCError.TRPCError({
|
|
438
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
439
|
+
message: 'No result from middlewares - did you forget to `return next()`?'
|
|
440
|
+
});
|
|
441
|
+
}
|
|
442
|
+
|
|
443
|
+
if (!result.ok) {
|
|
444
|
+
// re-throw original error
|
|
445
|
+
throw result.error;
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
return result.data;
|
|
449
|
+
};
|
|
450
|
+
|
|
451
|
+
procedure._def = _def;
|
|
452
|
+
procedure.meta = _def.meta;
|
|
453
|
+
return procedure;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
function createInputMiddleware(parse) {
|
|
457
|
+
return async function inputMiddleware({
|
|
458
|
+
next,
|
|
459
|
+
rawInput
|
|
460
|
+
}) {
|
|
461
|
+
let input;
|
|
462
|
+
|
|
463
|
+
try {
|
|
464
|
+
input = await parse(rawInput);
|
|
465
|
+
} catch (cause) {
|
|
466
|
+
throw new TRPCError.TRPCError({
|
|
467
|
+
code: 'BAD_REQUEST',
|
|
468
|
+
cause: TRPCError.getCauseFromUnknown(cause)
|
|
469
|
+
});
|
|
470
|
+
} // TODO fix this typing?
|
|
471
|
+
|
|
472
|
+
|
|
473
|
+
return next({
|
|
474
|
+
input
|
|
475
|
+
});
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
function createOutputMiddleware(parse) {
|
|
479
|
+
return async function outputMiddleware({
|
|
480
|
+
next
|
|
481
|
+
}) {
|
|
482
|
+
const result = await next();
|
|
483
|
+
|
|
484
|
+
if (!result.ok) {
|
|
485
|
+
// pass through failures without validating
|
|
486
|
+
return result;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
try {
|
|
490
|
+
const data = await parse(result.data);
|
|
491
|
+
return { ...result,
|
|
492
|
+
data
|
|
493
|
+
};
|
|
494
|
+
} catch (cause) {
|
|
495
|
+
throw new TRPCError.TRPCError({
|
|
496
|
+
message: 'Output validation failed',
|
|
497
|
+
code: 'INTERNAL_SERVER_ERROR',
|
|
498
|
+
cause: TRPCError.getCauseFromUnknown(cause)
|
|
499
|
+
});
|
|
500
|
+
}
|
|
501
|
+
};
|
|
502
|
+
}
|
|
503
|
+
function createInternalBuilder(initDef) {
|
|
504
|
+
const _def = initDef || {
|
|
505
|
+
middlewares: []
|
|
506
|
+
};
|
|
507
|
+
|
|
508
|
+
return {
|
|
509
|
+
_def,
|
|
510
|
+
|
|
511
|
+
// _call: createProcedureCaller(_def),
|
|
512
|
+
input(input) {
|
|
513
|
+
const parser = getParseFn(input);
|
|
514
|
+
return createNewInternalBuilder(_def, {
|
|
515
|
+
input,
|
|
516
|
+
middlewares: [createInputMiddleware(parser)]
|
|
517
|
+
});
|
|
518
|
+
},
|
|
519
|
+
|
|
520
|
+
output(output) {
|
|
521
|
+
const parseOutput = getParseFn(output);
|
|
522
|
+
return createNewInternalBuilder(_def, {
|
|
523
|
+
output,
|
|
524
|
+
middlewares: [createOutputMiddleware(parseOutput)]
|
|
525
|
+
});
|
|
526
|
+
},
|
|
527
|
+
|
|
528
|
+
meta(meta) {
|
|
529
|
+
return createNewInternalBuilder(_def, {
|
|
530
|
+
meta
|
|
531
|
+
});
|
|
532
|
+
},
|
|
533
|
+
|
|
534
|
+
resolve(resolver) {
|
|
535
|
+
const finalBuilder = createNewInternalBuilder(_def, {
|
|
536
|
+
resolver,
|
|
537
|
+
middlewares: [async function resolveMiddleware(opts) {
|
|
538
|
+
const data = await resolver(opts);
|
|
539
|
+
return {
|
|
540
|
+
marker: middlewareMarker,
|
|
541
|
+
ok: true,
|
|
542
|
+
data,
|
|
543
|
+
ctx: opts.ctx
|
|
544
|
+
};
|
|
545
|
+
}]
|
|
546
|
+
});
|
|
547
|
+
return createProcedureCaller(finalBuilder._def);
|
|
548
|
+
},
|
|
549
|
+
|
|
550
|
+
unstable_concat(builder) {
|
|
551
|
+
return createNewInternalBuilder(_def, builder._def);
|
|
552
|
+
},
|
|
553
|
+
|
|
554
|
+
use(middleware) {
|
|
555
|
+
return createNewInternalBuilder(_def, {
|
|
556
|
+
middlewares: [middleware]
|
|
557
|
+
});
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
};
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
/**
|
|
564
|
+
* Create an object without inheriting anything from `Object.prototype`
|
|
565
|
+
* @internal
|
|
566
|
+
*/
|
|
567
|
+
function omitPrototype(obj1) {
|
|
568
|
+
return Object.assign(Object.create(null), obj1);
|
|
569
|
+
}
|
|
570
|
+
|
|
203
571
|
/* eslint-disable @typescript-eslint/ban-types */
|
|
204
|
-
|
|
572
|
+
|
|
573
|
+
function createRouterProxy(callback) {
|
|
574
|
+
return new Proxy({}, {
|
|
575
|
+
get(_, path) {
|
|
576
|
+
return (...args) => callback(path, ...args);
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
});
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
const emptyRouter = {
|
|
583
|
+
_ctx: null,
|
|
584
|
+
_errorShape: null,
|
|
585
|
+
_meta: null,
|
|
586
|
+
queries: {},
|
|
587
|
+
mutations: {},
|
|
588
|
+
subscriptions: {},
|
|
589
|
+
errorFormatter: defaultFormatter,
|
|
590
|
+
transformer: defaultTransformer
|
|
591
|
+
}; // type EmptyRouter = typeof emptyRouter;
|
|
592
|
+
|
|
593
|
+
const PROCEDURE_DEFINITION_MAP$1 = {
|
|
594
|
+
query: 'queries',
|
|
595
|
+
mutation: 'mutations',
|
|
596
|
+
subscription: 'subscriptions'
|
|
597
|
+
};
|
|
205
598
|
/**
|
|
206
|
-
*
|
|
599
|
+
*
|
|
600
|
+
* @internal
|
|
207
601
|
*/
|
|
208
602
|
|
|
603
|
+
function createRouterFactory(defaults) {
|
|
604
|
+
return function createRouterInner(procedures) {
|
|
605
|
+
var _defaults$transformer, _defaults$errorFormat;
|
|
606
|
+
|
|
607
|
+
const result = mergeWithoutOverrides({
|
|
608
|
+
transformer: (_defaults$transformer = defaults === null || defaults === void 0 ? void 0 : defaults.transformer) !== null && _defaults$transformer !== void 0 ? _defaults$transformer : defaultTransformer,
|
|
609
|
+
errorFormatter: (_defaults$errorFormat = defaults === null || defaults === void 0 ? void 0 : defaults.errorFormatter) !== null && _defaults$errorFormat !== void 0 ? _defaults$errorFormat : defaultFormatter
|
|
610
|
+
}, {
|
|
611
|
+
queries: omitPrototype(procedures.queries),
|
|
612
|
+
mutations: omitPrototype(procedures.mutations),
|
|
613
|
+
subscriptions: omitPrototype(procedures.subscriptions)
|
|
614
|
+
});
|
|
615
|
+
const _def = { ...emptyRouter,
|
|
616
|
+
...result
|
|
617
|
+
};
|
|
618
|
+
const def = {
|
|
619
|
+
_def,
|
|
620
|
+
..._def
|
|
621
|
+
};
|
|
622
|
+
|
|
623
|
+
function callProcedure(opts) {
|
|
624
|
+
const {
|
|
625
|
+
type,
|
|
626
|
+
path
|
|
627
|
+
} = opts;
|
|
628
|
+
const defTarget = PROCEDURE_DEFINITION_MAP$1[type];
|
|
629
|
+
const defs = def[defTarget];
|
|
630
|
+
|
|
631
|
+
if (!(path in defs)) {
|
|
632
|
+
throw new TRPCError.TRPCError({
|
|
633
|
+
code: 'NOT_FOUND',
|
|
634
|
+
message: `No "${type}"-procedure on path "${path}"`
|
|
635
|
+
});
|
|
636
|
+
}
|
|
637
|
+
|
|
638
|
+
const procedure = defs[path];
|
|
639
|
+
return procedure(opts);
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
const router = { ...def,
|
|
643
|
+
|
|
644
|
+
createCaller(ctx) {
|
|
645
|
+
return {
|
|
646
|
+
query: (path, ...args) => callProcedure({
|
|
647
|
+
path,
|
|
648
|
+
rawInput: args[0],
|
|
649
|
+
ctx,
|
|
650
|
+
type: 'query'
|
|
651
|
+
}),
|
|
652
|
+
mutation: (path, ...args) => callProcedure({
|
|
653
|
+
path,
|
|
654
|
+
rawInput: args[0],
|
|
655
|
+
ctx,
|
|
656
|
+
type: 'mutation'
|
|
657
|
+
}),
|
|
658
|
+
subscription: (path, ...args) => callProcedure({
|
|
659
|
+
path,
|
|
660
|
+
rawInput: args[0],
|
|
661
|
+
ctx,
|
|
662
|
+
type: 'subscription'
|
|
663
|
+
}),
|
|
664
|
+
queries: createRouterProxy((path, rawInput) => callProcedure({
|
|
665
|
+
path,
|
|
666
|
+
rawInput,
|
|
667
|
+
ctx,
|
|
668
|
+
type: 'query'
|
|
669
|
+
})),
|
|
670
|
+
mutations: createRouterProxy((path, rawInput) => callProcedure({
|
|
671
|
+
path,
|
|
672
|
+
rawInput,
|
|
673
|
+
ctx,
|
|
674
|
+
type: 'mutation'
|
|
675
|
+
})),
|
|
676
|
+
subscriptions: createRouterProxy((path, rawInput) => callProcedure({
|
|
677
|
+
path,
|
|
678
|
+
rawInput,
|
|
679
|
+
ctx,
|
|
680
|
+
type: 'subscription'
|
|
681
|
+
}))
|
|
682
|
+
};
|
|
683
|
+
},
|
|
684
|
+
|
|
685
|
+
getErrorShape(opts) {
|
|
686
|
+
const {
|
|
687
|
+
path,
|
|
688
|
+
error
|
|
689
|
+
} = opts;
|
|
690
|
+
const {
|
|
691
|
+
code
|
|
692
|
+
} = opts.error;
|
|
693
|
+
const shape = {
|
|
694
|
+
message: error.message,
|
|
695
|
+
code: envelopes.TRPC_ERROR_CODES_BY_KEY[code],
|
|
696
|
+
data: {
|
|
697
|
+
code,
|
|
698
|
+
httpStatus: resolveHTTPResponse.getHTTPStatusCodeFromError(error)
|
|
699
|
+
}
|
|
700
|
+
};
|
|
701
|
+
|
|
702
|
+
if (process.env.NODE_ENV !== 'production' && typeof opts.error.stack === 'string') {
|
|
703
|
+
shape.data.stack = opts.error.stack;
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
if (typeof path === 'string') {
|
|
707
|
+
shape.data.path = path;
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
return this._def.errorFormatter({ ...opts,
|
|
711
|
+
shape
|
|
712
|
+
});
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
};
|
|
716
|
+
return router;
|
|
717
|
+
};
|
|
718
|
+
}
|
|
719
|
+
|
|
720
|
+
function migrateProcedure(oldProc) {
|
|
721
|
+
const def = oldProc._def();
|
|
722
|
+
|
|
723
|
+
const inputParser = getParseFnOrPassThrough(def.inputParser);
|
|
724
|
+
const outputParser = getParseFnOrPassThrough(def.outputParser);
|
|
725
|
+
const inputMiddleware = createInputMiddleware(inputParser);
|
|
726
|
+
const builder = createInternalBuilder({
|
|
727
|
+
input: def.inputParser,
|
|
728
|
+
middlewares: [...def.middlewares, inputMiddleware, createOutputMiddleware(outputParser)],
|
|
729
|
+
meta: def.meta,
|
|
730
|
+
output: def.outputParser
|
|
731
|
+
});
|
|
732
|
+
const proc = builder.resolve(opts => def.resolver(opts));
|
|
733
|
+
return proc;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
function migrateRouter(oldRouter) {
|
|
737
|
+
const errorFormatter = oldRouter._def.errorFormatter;
|
|
738
|
+
const transformer = oldRouter._def.transformer;
|
|
739
|
+
const queries = {};
|
|
740
|
+
const mutations = {};
|
|
741
|
+
const subscriptions = {};
|
|
742
|
+
|
|
743
|
+
for (const [name, procedure] of Object.entries(oldRouter._def.queries)) {
|
|
744
|
+
queries[name] = migrateProcedure(procedure);
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
for (const [name, procedure] of Object.entries(oldRouter._def.mutations)) {
|
|
748
|
+
mutations[name] = migrateProcedure(procedure);
|
|
749
|
+
}
|
|
750
|
+
|
|
751
|
+
for (const [name, procedure] of Object.entries(oldRouter._def.subscriptions)) {
|
|
752
|
+
subscriptions[name] = migrateProcedure(procedure);
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
const newRouter = createRouterFactory({
|
|
756
|
+
transformer,
|
|
757
|
+
errorFormatter
|
|
758
|
+
})({
|
|
759
|
+
mutations,
|
|
760
|
+
queries,
|
|
761
|
+
subscriptions
|
|
762
|
+
});
|
|
763
|
+
return newRouter;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
767
|
+
resolveHTTPResponse.assertNotBrowser();
|
|
768
|
+
|
|
209
769
|
function getDataTransformer(transformer) {
|
|
210
770
|
if ('input' in transformer) {
|
|
211
771
|
return transformer;
|
|
@@ -218,6 +778,7 @@ function getDataTransformer(transformer) {
|
|
|
218
778
|
}
|
|
219
779
|
/**
|
|
220
780
|
* @internal
|
|
781
|
+
* @deprecated
|
|
221
782
|
*/
|
|
222
783
|
|
|
223
784
|
|
|
@@ -228,31 +789,16 @@ const PROCEDURE_DEFINITION_MAP = {
|
|
|
228
789
|
};
|
|
229
790
|
/**
|
|
230
791
|
* @internal
|
|
792
|
+
* @deprecated
|
|
231
793
|
*/
|
|
232
794
|
|
|
233
795
|
function safeObject(...args) {
|
|
234
796
|
return Object.assign(Object.create(null), ...args);
|
|
235
797
|
}
|
|
236
798
|
|
|
237
|
-
const defaultFormatter = ({
|
|
238
|
-
shape
|
|
239
|
-
}) => {
|
|
240
|
-
return shape;
|
|
241
|
-
};
|
|
242
|
-
|
|
243
|
-
const defaultTransformer = {
|
|
244
|
-
input: {
|
|
245
|
-
serialize: obj => obj,
|
|
246
|
-
deserialize: obj => obj
|
|
247
|
-
},
|
|
248
|
-
output: {
|
|
249
|
-
serialize: obj => obj,
|
|
250
|
-
deserialize: obj => obj
|
|
251
|
-
}
|
|
252
|
-
};
|
|
253
|
-
|
|
254
799
|
/**
|
|
255
800
|
* @internal The type signature of this class may change without warning.
|
|
801
|
+
* @deprecated
|
|
256
802
|
*/
|
|
257
803
|
class Router {
|
|
258
804
|
constructor(def) {
|
|
@@ -493,14 +1039,149 @@ class Router {
|
|
|
493
1039
|
flat() {
|
|
494
1040
|
return this;
|
|
495
1041
|
}
|
|
1042
|
+
/**
|
|
1043
|
+
* Interop mode for v9.x -> v10.x
|
|
1044
|
+
*/
|
|
1045
|
+
|
|
1046
|
+
|
|
1047
|
+
interop() {
|
|
1048
|
+
return migrateRouter(this);
|
|
1049
|
+
}
|
|
496
1050
|
|
|
497
1051
|
}
|
|
1052
|
+
/**
|
|
1053
|
+
* @deprecated
|
|
1054
|
+
*/
|
|
1055
|
+
|
|
498
1056
|
function router() {
|
|
499
1057
|
return new Router();
|
|
500
1058
|
}
|
|
501
1059
|
|
|
1060
|
+
function mergeRouters(...routerList) {
|
|
1061
|
+
const queries = mergeWithoutOverrides({}, ...routerList.map(r => r.queries));
|
|
1062
|
+
const mutations = mergeWithoutOverrides({}, ...routerList.map(r => r.mutations));
|
|
1063
|
+
const subscriptions = mergeWithoutOverrides({}, ...routerList.map(r => r.subscriptions));
|
|
1064
|
+
const errorFormatter = routerList.reduce((currentErrorFormatter, nextRouter) => {
|
|
1065
|
+
if (nextRouter.errorFormatter && nextRouter.errorFormatter !== defaultFormatter) {
|
|
1066
|
+
if (currentErrorFormatter !== defaultFormatter && currentErrorFormatter !== nextRouter.errorFormatter) {
|
|
1067
|
+
throw new Error('You seem to have several error formatters');
|
|
1068
|
+
}
|
|
1069
|
+
|
|
1070
|
+
return nextRouter.errorFormatter;
|
|
1071
|
+
}
|
|
1072
|
+
|
|
1073
|
+
return currentErrorFormatter;
|
|
1074
|
+
}, defaultFormatter);
|
|
1075
|
+
const transformer = routerList.reduce((prev, current) => {
|
|
1076
|
+
if (current.transformer && current.transformer !== defaultTransformer) {
|
|
1077
|
+
if (prev !== defaultTransformer && prev !== current.transformer) {
|
|
1078
|
+
throw new Error('You seem to have several transformers');
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1081
|
+
return current.transformer;
|
|
1082
|
+
}
|
|
1083
|
+
|
|
1084
|
+
return prev;
|
|
1085
|
+
}, defaultTransformer);
|
|
1086
|
+
const router = createRouterFactory({
|
|
1087
|
+
errorFormatter,
|
|
1088
|
+
transformer
|
|
1089
|
+
})({
|
|
1090
|
+
queries,
|
|
1091
|
+
mutations,
|
|
1092
|
+
subscriptions
|
|
1093
|
+
});
|
|
1094
|
+
return router;
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
/**
|
|
1098
|
+
* @deprecated Only keeping this for future reference if our testing was a false-positive
|
|
1099
|
+
*/
|
|
1100
|
+
|
|
1101
|
+
function mergeRoutersGeneric(...args) {
|
|
1102
|
+
return mergeRouters(...args);
|
|
1103
|
+
}
|
|
1104
|
+
|
|
1105
|
+
// TODO make this into a callbag?
|
|
1106
|
+
function createBuilder() {
|
|
1107
|
+
return createInternalBuilder();
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1110
|
+
/**
|
|
1111
|
+
* @internal
|
|
1112
|
+
*/
|
|
1113
|
+
|
|
1114
|
+
/**
|
|
1115
|
+
* @internal
|
|
1116
|
+
*/
|
|
1117
|
+
|
|
1118
|
+
/**
|
|
1119
|
+
* @internal
|
|
1120
|
+
*/
|
|
1121
|
+
|
|
1122
|
+
/**
|
|
1123
|
+
* @internal
|
|
1124
|
+
*/
|
|
1125
|
+
|
|
1126
|
+
/**
|
|
1127
|
+
* @internal
|
|
1128
|
+
*/
|
|
1129
|
+
|
|
1130
|
+
/**
|
|
1131
|
+
* @internal
|
|
1132
|
+
*/
|
|
1133
|
+
// FIXME this should use RootConfig
|
|
1134
|
+
function createMiddlewareFactory() {
|
|
1135
|
+
return function createMiddleware(fn) {
|
|
1136
|
+
return fn;
|
|
1137
|
+
};
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
/* eslint-disable @typescript-eslint/ban-types */
|
|
1141
|
+
function initTRPC() {
|
|
1142
|
+
return function initTRPCInner(options) {
|
|
1143
|
+
var _options$errorFormatt, _options$transformer;
|
|
1144
|
+
|
|
1145
|
+
const errorFormatter = (_options$errorFormatt = options === null || options === void 0 ? void 0 : options.errorFormatter) !== null && _options$errorFormatt !== void 0 ? _options$errorFormatt : defaultFormatter;
|
|
1146
|
+
const transformer = getDataTransformer$1((_options$transformer = options === null || options === void 0 ? void 0 : options.transformer) !== null && _options$transformer !== void 0 ? _options$transformer : defaultTransformer);
|
|
1147
|
+
return {
|
|
1148
|
+
/**
|
|
1149
|
+
* These are just types, they can't be used
|
|
1150
|
+
* @internal
|
|
1151
|
+
*/
|
|
1152
|
+
_config: null,
|
|
1153
|
+
|
|
1154
|
+
/**
|
|
1155
|
+
* Builder object for creating procedures
|
|
1156
|
+
*/
|
|
1157
|
+
procedure: createBuilder(),
|
|
1158
|
+
|
|
1159
|
+
/**
|
|
1160
|
+
* Create reusable middlewares
|
|
1161
|
+
*/
|
|
1162
|
+
middleware: createMiddlewareFactory(),
|
|
1163
|
+
|
|
1164
|
+
/**
|
|
1165
|
+
* Create a router
|
|
1166
|
+
* FIXME this should also use error formatter
|
|
1167
|
+
*/
|
|
1168
|
+
router: createRouterFactory({
|
|
1169
|
+
errorFormatter,
|
|
1170
|
+
transformer
|
|
1171
|
+
}),
|
|
1172
|
+
|
|
1173
|
+
/**
|
|
1174
|
+
* Merge Routers
|
|
1175
|
+
*/
|
|
1176
|
+
mergeRouters: mergeRoutersGeneric
|
|
1177
|
+
};
|
|
1178
|
+
};
|
|
1179
|
+
}
|
|
1180
|
+
|
|
502
1181
|
exports.assertNotBrowser = resolveHTTPResponse.assertNotBrowser;
|
|
503
1182
|
exports.resolveHTTPResponse = resolveHTTPResponse.resolveHTTPResponse;
|
|
504
1183
|
exports.TRPCError = TRPCError.TRPCError;
|
|
505
|
-
exports.
|
|
1184
|
+
exports.defaultTransformer = defaultTransformer;
|
|
1185
|
+
exports.getDataTransformer = getDataTransformer$1;
|
|
1186
|
+
exports.initTRPC = initTRPC;
|
|
506
1187
|
exports.router = router;
|