@trpc/server 10.0.0-proxy-beta.5 → 10.0.0-proxy-beta.7

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.
Files changed (72) hide show
  1. package/dist/{TRPCError-e99e7cbe.mjs → TRPCError-281ac25a.mjs} +1 -1
  2. package/dist/adapters/aws-lambda/index.js +2 -2
  3. package/dist/adapters/aws-lambda/index.mjs +3 -3
  4. package/dist/adapters/express.js +2 -2
  5. package/dist/adapters/express.mjs +3 -3
  6. package/dist/adapters/fastify/index.js +1 -1
  7. package/dist/adapters/fastify/index.mjs +2 -2
  8. package/dist/adapters/fetch/index.js +1 -1
  9. package/dist/adapters/fetch/index.mjs +2 -2
  10. package/dist/adapters/next.js +2 -2
  11. package/dist/adapters/next.mjs +3 -3
  12. package/dist/adapters/node-http/index.js +2 -2
  13. package/dist/adapters/node-http/index.mjs +3 -3
  14. package/dist/adapters/standalone.d.ts +1 -1
  15. package/dist/adapters/standalone.js +3 -3
  16. package/dist/adapters/standalone.mjs +4 -4
  17. package/dist/adapters/ws.mjs +1 -1
  18. package/dist/index.js +6 -6
  19. package/dist/index.mjs +5 -4
  20. package/dist/{nodeHTTPRequestHandler-1427713e.mjs → nodeHTTPRequestHandler-b59d2c10.mjs} +2 -2
  21. package/dist/{nodeHTTPRequestHandler-c3200031.js → nodeHTTPRequestHandler-d30a4185.js} +1 -1
  22. package/dist/{resolveHTTPResponse-6fecf1e4.js → resolveHTTPResponse-0a8e47b8.js} +1 -273
  23. package/dist/{resolveHTTPResponse-d922c40d.mjs → resolveHTTPResponse-24d99c94.mjs} +3 -270
  24. package/dist/{router-239218de.mjs → router-6e04fa44.mjs} +273 -6
  25. package/dist/{router-cf869ecb.js → router-bf52be2e.js} +279 -8
  26. package/dist/subscription.mjs +1 -1
  27. package/package.json +25 -12
  28. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +0 -1
  29. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +0 -190
  30. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.js +0 -7
  31. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +0 -190
  32. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +0 -186
  33. package/adapters/express/dist/trpc-server-adapters-express.cjs.d.ts +0 -1
  34. package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +0 -23
  35. package/adapters/express/dist/trpc-server-adapters-express.cjs.js +0 -7
  36. package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +0 -23
  37. package/adapters/express/dist/trpc-server-adapters-express.esm.js +0 -19
  38. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.d.ts +0 -1
  39. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +0 -109
  40. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.js +0 -7
  41. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +0 -109
  42. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +0 -104
  43. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +0 -1
  44. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +0 -25
  45. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +0 -7
  46. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +0 -25
  47. package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +0 -21
  48. package/adapters/next/dist/trpc-server-adapters-next.cjs.d.ts +0 -1
  49. package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +0 -56
  50. package/adapters/next/dist/trpc-server-adapters-next.cjs.js +0 -7
  51. package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +0 -56
  52. package/adapters/next/dist/trpc-server-adapters-next.esm.js +0 -52
  53. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.d.ts +0 -1
  54. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +0 -13
  55. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.js +0 -7
  56. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +0 -13
  57. package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +0 -5
  58. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.d.ts +0 -1
  59. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +0 -46
  60. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.js +0 -7
  61. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +0 -46
  62. package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +0 -36
  63. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.d.ts +0 -1
  64. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +0 -363
  65. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.js +0 -7
  66. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +0 -363
  67. package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +0 -359
  68. package/rpc/dist/trpc-server-rpc.cjs.d.ts +0 -1
  69. package/rpc/dist/trpc-server-rpc.cjs.dev.js +0 -10
  70. package/rpc/dist/trpc-server-rpc.cjs.js +0 -7
  71. package/rpc/dist/trpc-server-rpc.cjs.prod.js +0 -10
  72. package/rpc/dist/trpc-server-rpc.esm.js +0 -1
@@ -1,4 +1,4 @@
1
- import { T as TRPCError, g as getCauseFromUnknown, a as getTRPCErrorFromUnknown } from './TRPCError-e99e7cbe.mjs';
1
+ import { T as TRPCError, g as getTRPCErrorFromUnknown, a as getCauseFromUnknown } from './TRPCError-281ac25a.mjs';
2
2
  import { i as invert, T as TRPC_ERROR_CODES_BY_KEY } from './codes-7d21f749.mjs';
3
3
  import { c as createProxy } from './index-5b2e87d4.mjs';
4
4
  import { t as transformTRPCResponse } from './transformTRPCResponse-c8138d5f.mjs';
@@ -132,7 +132,7 @@ const emptyRouter = {
132
132
  /**
133
133
  * Then is a reserved word because otherwise we can't return a promise that returns a Proxy
134
134
  * since JS will think that `.then` is something that exists
135
- */ 'then',
135
+ */ 'then'
136
136
  ];
137
137
  /**
138
138
  *
@@ -254,273 +254,6 @@ const emptyRouter = {
254
254
  return procedure(opts);
255
255
  }
256
256
 
257
- /**
258
- * @internal
259
- */ // FIXME this should use RootConfig
260
- function createMiddlewareFactory() {
261
- return function createMiddleware(fn) {
262
- return fn;
263
- };
264
- }
265
- function isPlainObject(obj) {
266
- return obj && typeof obj === 'object' && !Array.isArray(obj);
267
- }
268
- /**
269
- * @internal
270
- * Please note, `trpc-openapi` uses this function.
271
- */ function createInputMiddleware(parse) {
272
- const inputMiddleware = async ({ next , rawInput , input , })=>{
273
- let parsedInput;
274
- try {
275
- parsedInput = await parse(rawInput);
276
- } catch (cause) {
277
- throw new TRPCError({
278
- code: 'BAD_REQUEST',
279
- cause: getCauseFromUnknown(cause)
280
- });
281
- }
282
- // Multiple input parsers
283
- const combinedInput = isPlainObject(input) && isPlainObject(parsedInput) ? {
284
- ...input,
285
- ...parsedInput
286
- } : parsedInput;
287
- // TODO fix this typing?
288
- return next({
289
- input: combinedInput
290
- });
291
- };
292
- inputMiddleware._type = 'input';
293
- return inputMiddleware;
294
- }
295
- /**
296
- * @internal
297
- */ function createOutputMiddleware(parse) {
298
- const outputMiddleware = async ({ next })=>{
299
- const result = await next();
300
- if (!result.ok) {
301
- // pass through failures without validating
302
- return result;
303
- }
304
- try {
305
- const data = await parse(result.data);
306
- return {
307
- ...result,
308
- data
309
- };
310
- } catch (cause) {
311
- throw new TRPCError({
312
- message: 'Output validation failed',
313
- code: 'INTERNAL_SERVER_ERROR',
314
- cause: getCauseFromUnknown(cause)
315
- });
316
- }
317
- };
318
- outputMiddleware._type = 'output';
319
- return outputMiddleware;
320
- }
321
-
322
- function getParseFn(procedureParser) {
323
- const parser = procedureParser;
324
- if (typeof parser === 'function') {
325
- // ProcedureParserCustomValidatorEsque
326
- return parser;
327
- }
328
- if (typeof parser.parseAsync === 'function') {
329
- // ProcedureParserZodEsque
330
- return parser.parseAsync.bind(parser);
331
- }
332
- if (typeof parser.parse === 'function') {
333
- // ProcedureParserZodEsque
334
- return parser.parse.bind(parser);
335
- }
336
- if (typeof parser.validateSync === 'function') {
337
- // ProcedureParserYupEsque
338
- return parser.validateSync.bind(parser);
339
- }
340
- if (typeof parser.create === 'function') {
341
- // ProcedureParserSuperstructEsque
342
- return parser.create.bind(parser);
343
- }
344
- throw new Error('Could not find a validator fn');
345
- }
346
- /**
347
- * @deprecated only for backwards compat
348
- * @internal
349
- */ function getParseFnOrPassThrough(procedureParser) {
350
- if (!procedureParser) {
351
- return (v)=>v;
352
- }
353
- return getParseFn(procedureParser);
354
- }
355
-
356
- /**
357
- * @internal
358
- */ const middlewareMarker = 'middlewareMarker';
359
-
360
- function createNewBuilder(def1, def2) {
361
- const { middlewares =[] , inputs , ...rest } = def2;
362
- // TODO: maybe have a fn here to warn about calls
363
- return createBuilder({
364
- ...mergeWithoutOverrides(def1, rest),
365
- inputs: [
366
- ...def1.inputs,
367
- ...inputs ?? []
368
- ],
369
- middlewares: [
370
- ...def1.middlewares,
371
- ...middlewares
372
- ]
373
- });
374
- }
375
- function createBuilder(initDef) {
376
- const _def = initDef || {
377
- inputs: [],
378
- middlewares: []
379
- };
380
- return {
381
- _def,
382
- input (input) {
383
- const parser = getParseFn(input);
384
- return createNewBuilder(_def, {
385
- inputs: [
386
- input
387
- ],
388
- middlewares: [
389
- createInputMiddleware(parser)
390
- ]
391
- });
392
- },
393
- output (output) {
394
- const parseOutput = getParseFn(output);
395
- return createNewBuilder(_def, {
396
- output,
397
- middlewares: [
398
- createOutputMiddleware(parseOutput)
399
- ]
400
- });
401
- },
402
- meta (meta) {
403
- return createNewBuilder(_def, {
404
- meta: meta
405
- });
406
- },
407
- unstable_concat (builder) {
408
- return createNewBuilder(_def, builder._def);
409
- },
410
- use (middleware) {
411
- return createNewBuilder(_def, {
412
- middlewares: [
413
- middleware
414
- ]
415
- });
416
- },
417
- query (resolver) {
418
- return createResolver({
419
- ..._def,
420
- query: true
421
- }, resolver);
422
- },
423
- mutation (resolver) {
424
- return createResolver({
425
- ..._def,
426
- mutation: true
427
- }, resolver);
428
- },
429
- subscription (resolver) {
430
- return createResolver({
431
- ..._def,
432
- subscription: true
433
- }, resolver);
434
- }
435
- };
436
- }
437
- function createResolver(_def, resolver) {
438
- const finalBuilder = createNewBuilder(_def, {
439
- resolver,
440
- middlewares: [
441
- async function resolveMiddleware(opts) {
442
- const data = await resolver(opts);
443
- return {
444
- marker: middlewareMarker,
445
- ok: true,
446
- data,
447
- ctx: opts.ctx
448
- };
449
- },
450
- ]
451
- });
452
- return createProcedureCaller(finalBuilder._def);
453
- }
454
- const codeblock = `
455
- If you want to call this function on the server, you do the following:
456
- This is a client-only function.
457
-
458
- const caller = appRouter.createCaller({
459
- /* ... your context */
460
- });
461
-
462
- const result = await caller.call('myProcedure', input);
463
- `.trim();
464
- function createProcedureCaller(_def) {
465
- const procedure = async function resolve(opts) {
466
- // is direct server-side call
467
- if (!opts || !('rawInput' in opts)) {
468
- throw new Error(codeblock);
469
- }
470
- // run the middlewares recursively with the resolver as the last one
471
- const callRecursive = async (callOpts = {
472
- index: 0,
473
- ctx: opts.ctx
474
- })=>{
475
- try {
476
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
477
- const middleware = _def.middlewares[callOpts.index];
478
- const result = await middleware({
479
- ctx: callOpts.ctx,
480
- type: opts.type,
481
- path: opts.path,
482
- rawInput: opts.rawInput,
483
- meta: _def.meta,
484
- input: callOpts.input,
485
- next: async (nextOpts)=>{
486
- return await callRecursive({
487
- index: callOpts.index + 1,
488
- ctx: nextOpts && 'ctx' in nextOpts ? {
489
- ...callOpts.ctx,
490
- ...nextOpts.ctx
491
- } : callOpts.ctx,
492
- input: nextOpts && 'input' in nextOpts ? nextOpts.input : callOpts.input
493
- });
494
- }
495
- });
496
- return result;
497
- } catch (cause) {
498
- return {
499
- ok: false,
500
- error: getTRPCErrorFromUnknown(cause),
501
- marker: middlewareMarker
502
- };
503
- }
504
- };
505
- // there's always at least one "next" since we wrap this.resolver in a middleware
506
- const result = await callRecursive();
507
- if (!result) {
508
- throw new TRPCError({
509
- code: 'INTERNAL_SERVER_ERROR',
510
- message: 'No result from middlewares - did you forget to `return next()`?'
511
- });
512
- }
513
- if (!result.ok) {
514
- // re-throw original error
515
- throw result.error;
516
- }
517
- return result.data;
518
- };
519
- procedure._def = _def;
520
- procedure.meta = _def.meta;
521
- return procedure;
522
- }
523
-
524
257
  const HTTP_METHOD_PROCEDURE_TYPE_MAP = {
525
258
  GET: 'query',
526
259
  POST: 'mutation'
@@ -722,4 +455,4 @@ async function resolveHTTPResponse(opts) {
722
455
  }
723
456
  }
724
457
 
725
- export { defaultTransformer as a, createBuilder as b, createRouterFactory as c, defaultFormatter as d, createMiddlewareFactory as e, assertNotBrowser as f, getDataTransformer as g, callProcedure as h, createInputMiddleware as i, createOutputMiddleware as j, getParseFnOrPassThrough as k, getHTTPStatusCodeFromError as l, mergeWithoutOverrides as m, procedureTypes as p, resolveHTTPResponse as r };
458
+ export { defaultTransformer as a, assertNotBrowser as b, createRouterFactory as c, defaultFormatter as d, callProcedure as e, getHTTPStatusCodeFromError as f, getDataTransformer as g, mergeWithoutOverrides as m, procedureTypes as p, resolveHTTPResponse as r };
@@ -1,6 +1,273 @@
1
- import { f as assertNotBrowser, m as mergeWithoutOverrides, c as createRouterFactory, k as getParseFnOrPassThrough, i as createInputMiddleware, b as createBuilder, j as createOutputMiddleware, d as defaultFormatter, l as getHTTPStatusCodeFromError, a as defaultTransformer } from './resolveHTTPResponse-d922c40d.mjs';
1
+ import { m as mergeWithoutOverrides, b as assertNotBrowser, c as createRouterFactory, d as defaultFormatter, f as getHTTPStatusCodeFromError, a as defaultTransformer } from './resolveHTTPResponse-24d99c94.mjs';
2
2
  import { T as TRPC_ERROR_CODES_BY_KEY } from './codes-7d21f749.mjs';
3
- import { T as TRPCError, g as getCauseFromUnknown, a as getTRPCErrorFromUnknown } from './TRPCError-e99e7cbe.mjs';
3
+ import { T as TRPCError, a as getCauseFromUnknown, g as getTRPCErrorFromUnknown } from './TRPCError-281ac25a.mjs';
4
+
5
+ /**
6
+ * @internal
7
+ */ // FIXME this should use RootConfig
8
+ function createMiddlewareFactory() {
9
+ return function createMiddleware(fn) {
10
+ return fn;
11
+ };
12
+ }
13
+ function isPlainObject(obj) {
14
+ return obj && typeof obj === 'object' && !Array.isArray(obj);
15
+ }
16
+ /**
17
+ * @internal
18
+ * Please note, `trpc-openapi` uses this function.
19
+ */ function createInputMiddleware(parse) {
20
+ const inputMiddleware = async ({ next , rawInput , input , })=>{
21
+ let parsedInput;
22
+ try {
23
+ parsedInput = await parse(rawInput);
24
+ } catch (cause) {
25
+ throw new TRPCError({
26
+ code: 'BAD_REQUEST',
27
+ cause: getCauseFromUnknown(cause)
28
+ });
29
+ }
30
+ // Multiple input parsers
31
+ const combinedInput = isPlainObject(input) && isPlainObject(parsedInput) ? {
32
+ ...input,
33
+ ...parsedInput
34
+ } : parsedInput;
35
+ // TODO fix this typing?
36
+ return next({
37
+ input: combinedInput
38
+ });
39
+ };
40
+ inputMiddleware._type = 'input';
41
+ return inputMiddleware;
42
+ }
43
+ /**
44
+ * @internal
45
+ */ function createOutputMiddleware(parse) {
46
+ const outputMiddleware = async ({ next })=>{
47
+ const result = await next();
48
+ if (!result.ok) {
49
+ // pass through failures without validating
50
+ return result;
51
+ }
52
+ try {
53
+ const data = await parse(result.data);
54
+ return {
55
+ ...result,
56
+ data
57
+ };
58
+ } catch (cause) {
59
+ throw new TRPCError({
60
+ message: 'Output validation failed',
61
+ code: 'INTERNAL_SERVER_ERROR',
62
+ cause: getCauseFromUnknown(cause)
63
+ });
64
+ }
65
+ };
66
+ outputMiddleware._type = 'output';
67
+ return outputMiddleware;
68
+ }
69
+
70
+ function getParseFn$1(procedureParser) {
71
+ const parser = procedureParser;
72
+ if (typeof parser === 'function') {
73
+ // ProcedureParserCustomValidatorEsque
74
+ return parser;
75
+ }
76
+ if (typeof parser.parseAsync === 'function') {
77
+ // ProcedureParserZodEsque
78
+ return parser.parseAsync.bind(parser);
79
+ }
80
+ if (typeof parser.parse === 'function') {
81
+ // ProcedureParserZodEsque
82
+ return parser.parse.bind(parser);
83
+ }
84
+ if (typeof parser.validateSync === 'function') {
85
+ // ProcedureParserYupEsque
86
+ return parser.validateSync.bind(parser);
87
+ }
88
+ if (typeof parser.create === 'function') {
89
+ // ProcedureParserSuperstructEsque
90
+ return parser.create.bind(parser);
91
+ }
92
+ throw new Error('Could not find a validator fn');
93
+ }
94
+ /**
95
+ * @deprecated only for backwards compat
96
+ * @internal
97
+ */ function getParseFnOrPassThrough(procedureParser) {
98
+ if (!procedureParser) {
99
+ return (v)=>v;
100
+ }
101
+ return getParseFn$1(procedureParser);
102
+ }
103
+
104
+ /**
105
+ * @internal
106
+ */ const middlewareMarker$1 = 'middlewareMarker';
107
+
108
+ function createNewBuilder(def1, def2) {
109
+ const { middlewares =[] , inputs , ...rest } = def2;
110
+ // TODO: maybe have a fn here to warn about calls
111
+ return createBuilder({
112
+ ...mergeWithoutOverrides(def1, rest),
113
+ inputs: [
114
+ ...def1.inputs,
115
+ ...inputs ?? []
116
+ ],
117
+ middlewares: [
118
+ ...def1.middlewares,
119
+ ...middlewares
120
+ ]
121
+ });
122
+ }
123
+ function createBuilder(initDef) {
124
+ const _def = initDef || {
125
+ inputs: [],
126
+ middlewares: []
127
+ };
128
+ return {
129
+ _def,
130
+ input (input) {
131
+ const parser = getParseFn$1(input);
132
+ return createNewBuilder(_def, {
133
+ inputs: [
134
+ input
135
+ ],
136
+ middlewares: [
137
+ createInputMiddleware(parser)
138
+ ]
139
+ });
140
+ },
141
+ output (output) {
142
+ const parseOutput = getParseFn$1(output);
143
+ return createNewBuilder(_def, {
144
+ output,
145
+ middlewares: [
146
+ createOutputMiddleware(parseOutput)
147
+ ]
148
+ });
149
+ },
150
+ meta (meta) {
151
+ return createNewBuilder(_def, {
152
+ meta: meta
153
+ });
154
+ },
155
+ unstable_concat (builder) {
156
+ return createNewBuilder(_def, builder._def);
157
+ },
158
+ use (middleware) {
159
+ return createNewBuilder(_def, {
160
+ middlewares: [
161
+ middleware
162
+ ]
163
+ });
164
+ },
165
+ query (resolver) {
166
+ return createResolver({
167
+ ..._def,
168
+ query: true
169
+ }, resolver);
170
+ },
171
+ mutation (resolver) {
172
+ return createResolver({
173
+ ..._def,
174
+ mutation: true
175
+ }, resolver);
176
+ },
177
+ subscription (resolver) {
178
+ return createResolver({
179
+ ..._def,
180
+ subscription: true
181
+ }, resolver);
182
+ }
183
+ };
184
+ }
185
+ function createResolver(_def, resolver) {
186
+ const finalBuilder = createNewBuilder(_def, {
187
+ resolver,
188
+ middlewares: [
189
+ async function resolveMiddleware(opts) {
190
+ const data = await resolver(opts);
191
+ return {
192
+ marker: middlewareMarker$1,
193
+ ok: true,
194
+ data,
195
+ ctx: opts.ctx
196
+ };
197
+ }
198
+ ]
199
+ });
200
+ return createProcedureCaller(finalBuilder._def);
201
+ }
202
+ const codeblock = `
203
+ If you want to call this function on the server, you do the following:
204
+ This is a client-only function.
205
+
206
+ const caller = appRouter.createCaller({
207
+ /* ... your context */
208
+ });
209
+
210
+ const result = await caller.call('myProcedure', input);
211
+ `.trim();
212
+ function createProcedureCaller(_def) {
213
+ const procedure = async function resolve(opts) {
214
+ // is direct server-side call
215
+ if (!opts || !('rawInput' in opts)) {
216
+ throw new Error(codeblock);
217
+ }
218
+ // run the middlewares recursively with the resolver as the last one
219
+ const callRecursive = async (callOpts = {
220
+ index: 0,
221
+ ctx: opts.ctx
222
+ })=>{
223
+ try {
224
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
225
+ const middleware = _def.middlewares[callOpts.index];
226
+ const result = await middleware({
227
+ ctx: callOpts.ctx,
228
+ type: opts.type,
229
+ path: opts.path,
230
+ rawInput: opts.rawInput,
231
+ meta: _def.meta,
232
+ input: callOpts.input,
233
+ next: async (nextOpts)=>{
234
+ return await callRecursive({
235
+ index: callOpts.index + 1,
236
+ ctx: nextOpts && 'ctx' in nextOpts ? {
237
+ ...callOpts.ctx,
238
+ ...nextOpts.ctx
239
+ } : callOpts.ctx,
240
+ input: nextOpts && 'input' in nextOpts ? nextOpts.input : callOpts.input
241
+ });
242
+ }
243
+ });
244
+ return result;
245
+ } catch (cause) {
246
+ return {
247
+ ok: false,
248
+ error: getTRPCErrorFromUnknown(cause),
249
+ marker: middlewareMarker$1
250
+ };
251
+ }
252
+ };
253
+ // there's always at least one "next" since we wrap this.resolver in a middleware
254
+ const result = await callRecursive();
255
+ if (!result) {
256
+ throw new TRPCError({
257
+ code: 'INTERNAL_SERVER_ERROR',
258
+ message: 'No result from middlewares - did you forget to `return next()`?'
259
+ });
260
+ }
261
+ if (!result.ok) {
262
+ // re-throw original error
263
+ throw result.error;
264
+ }
265
+ return result.data;
266
+ };
267
+ procedure._def = _def;
268
+ procedure.meta = _def.meta;
269
+ return procedure;
270
+ }
4
271
 
5
272
  assertNotBrowser();
6
273
 
@@ -87,7 +354,7 @@ function getParseFn(procedureParser) {
87
354
  data,
88
355
  ctx
89
356
  };
90
- },
357
+ }
91
358
  ]);
92
359
  // run the middlewares recursively with the resolver as the last one
93
360
  const callRecursive = async (callOpts = {
@@ -192,7 +459,7 @@ function migrateProcedure(oldProc, type) {
192
459
  middlewares: [
193
460
  ...def.middlewares,
194
461
  inputMiddleware,
195
- createOutputMiddleware(outputParser),
462
+ createOutputMiddleware(outputParser)
196
463
  ],
197
464
  meta: def.meta,
198
465
  output: def.outputParser,
@@ -296,7 +563,7 @@ function safeObject(...args) {
296
563
  const duplicates = [
297
564
  ...duplicateQueries,
298
565
  ...duplicateMutations,
299
- ...duplicateSubscriptions,
566
+ ...duplicateSubscriptions
300
567
  ];
301
568
  if (duplicates.length) {
302
569
  throw new Error(`Duplicate endpoint(s): ${duplicates.join(', ')}`);
@@ -448,4 +715,4 @@ function safeObject(...args) {
448
715
  return new Router();
449
716
  }
450
717
 
451
- export { router as r };
718
+ export { createMiddlewareFactory as a, createInputMiddleware as b, createBuilder as c, createOutputMiddleware as d, router as r };