@trpc/server 11.0.0-next.322 → 11.0.0-next.324

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 (28) hide show
  1. package/dist/bundle-analysis.json +26 -25
  2. package/dist/unstable-core-do-not-import/http/index.d.ts +5 -1
  3. package/dist/unstable-core-do-not-import/http/index.d.ts.map +1 -1
  4. package/dist/unstable-core-do-not-import/http/types.d.ts +7 -10
  5. package/dist/unstable-core-do-not-import/http/types.d.ts.map +1 -1
  6. package/dist/unstable-core-do-not-import/initTRPC.d.ts +2 -2
  7. package/dist/unstable-core-do-not-import/procedure.d.ts +12 -0
  8. package/dist/unstable-core-do-not-import/procedure.d.ts.map +1 -1
  9. package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +1 -1
  10. package/dist/unstable-core-do-not-import/procedureBuilder.js +12 -5
  11. package/dist/unstable-core-do-not-import/procedureBuilder.mjs +12 -5
  12. package/dist/unstable-core-do-not-import/router.d.ts +9 -3
  13. package/dist/unstable-core-do-not-import/router.d.ts.map +1 -1
  14. package/dist/unstable-core-do-not-import/router.js +18 -23
  15. package/dist/unstable-core-do-not-import/router.mjs +20 -25
  16. package/dist/unstable-core-do-not-import/utils.d.ts +3 -0
  17. package/dist/unstable-core-do-not-import/utils.d.ts.map +1 -1
  18. package/dist/unstable-core-do-not-import/utils.js +4 -0
  19. package/dist/unstable-core-do-not-import/utils.mjs +4 -1
  20. package/dist/unstable-core-do-not-import.js +1 -0
  21. package/dist/unstable-core-do-not-import.mjs +1 -1
  22. package/package.json +2 -2
  23. package/src/unstable-core-do-not-import/http/index.ts +5 -1
  24. package/src/unstable-core-do-not-import/http/types.ts +9 -10
  25. package/src/unstable-core-do-not-import/procedure.ts +15 -0
  26. package/src/unstable-core-do-not-import/procedureBuilder.ts +13 -5
  27. package/src/unstable-core-do-not-import/router.ts +45 -32
  28. package/src/unstable-core-do-not-import/utils.ts +5 -0
@@ -1,7 +1,7 @@
1
1
  {
2
- "bundleSize": 93049,
3
- "bundleOrigSize": 150142,
4
- "bundleReduction": 38.03,
2
+ "bundleSize": 93071,
3
+ "bundleOrigSize": 150877,
4
+ "bundleReduction": 38.31,
5
5
  "modules": [
6
6
  {
7
7
  "id": "/src/adapters/ws.ts",
@@ -32,8 +32,8 @@
32
32
  },
33
33
  {
34
34
  "id": "/src/unstable-core-do-not-import/procedureBuilder.ts",
35
- "size": 6215,
36
- "origSize": 15774,
35
+ "size": 6410,
36
+ "origSize": 15934,
37
37
  "renderedExports": [
38
38
  "unsetMarker",
39
39
  "createBuilder"
@@ -43,13 +43,13 @@
43
43
  "/src/unstable-core-do-not-import.ts",
44
44
  "/src/unstable-core-do-not-import/initTRPC.ts"
45
45
  ],
46
- "percent": 6.68,
47
- "reduction": 60.6
46
+ "percent": 6.89,
47
+ "reduction": 59.77
48
48
  },
49
49
  {
50
50
  "id": "/src/unstable-core-do-not-import/router.ts",
51
- "size": 6069,
52
- "origSize": 9881,
51
+ "size": 5831,
52
+ "origSize": 9972,
53
53
  "renderedExports": [
54
54
  "createRouterFactory",
55
55
  "callProcedure",
@@ -62,8 +62,8 @@
62
62
  "/src/unstable-core-do-not-import/http/resolveHTTPResponse.ts",
63
63
  "/src/unstable-core-do-not-import/initTRPC.ts"
64
64
  ],
65
- "percent": 6.52,
66
- "reduction": 38.58
65
+ "percent": 6.27,
66
+ "reduction": 41.53
67
67
  },
68
68
  {
69
69
  "id": "/src/adapters/node-http/content-type/form-data/fileUploadHandler.ts",
@@ -139,7 +139,7 @@
139
139
  "dependents": [
140
140
  "/src/adapters/aws-lambda/index.ts"
141
141
  ],
142
- "percent": 3.56,
142
+ "percent": 3.55,
143
143
  "reduction": 34.98
144
144
  },
145
145
  {
@@ -420,11 +420,12 @@
420
420
  },
421
421
  {
422
422
  "id": "/src/unstable-core-do-not-import/utils.ts",
423
- "size": 815,
424
- "origSize": 1016,
423
+ "size": 880,
424
+ "origSize": 1151,
425
425
  "renderedExports": [
426
426
  "mergeWithoutOverrides",
427
427
  "isObject",
428
+ "isFunction",
428
429
  "omitPrototype"
429
430
  ],
430
431
  "removedExports": [],
@@ -437,8 +438,8 @@
437
438
  "/src/unstable-core-do-not-import/rpc/parseTRPCMessage.ts",
438
439
  "/src/unstable-core-do-not-import/procedureBuilder.ts"
439
440
  ],
440
- "percent": 0.88,
441
- "reduction": 19.78
441
+ "percent": 0.95,
442
+ "reduction": 23.54
442
443
  },
443
444
  {
444
445
  "id": "/src/adapters/node-http/content-type/form-data/uploadHandler.ts",
@@ -590,8 +591,8 @@
590
591
  ],
591
592
  "removedExports": [],
592
593
  "dependents": [
593
- "/src/adapters/node-http/content-type/json/index.ts",
594
- "/src/adapters/node-http/content-type/form-data/index.ts"
594
+ "/src/adapters/node-http/content-type/form-data/index.ts",
595
+ "/src/adapters/node-http/content-type/json/index.ts"
595
596
  ],
596
597
  "percent": 0.12,
597
598
  "reduction": 86.68
@@ -599,7 +600,7 @@
599
600
  {
600
601
  "id": "/src/unstable-core-do-not-import/procedure.ts",
601
602
  "size": 75,
602
- "origSize": 2135,
603
+ "origSize": 2484,
603
604
  "renderedExports": [
604
605
  "procedureTypes"
605
606
  ],
@@ -609,7 +610,7 @@
609
610
  "/src/unstable-core-do-not-import/rpc/parseTRPCMessage.ts"
610
611
  ],
611
612
  "percent": 0.08,
612
- "reduction": 96.49
613
+ "reduction": 96.98
613
614
  },
614
615
  {
615
616
  "id": "/src/unstable-core-do-not-import/error/formatter.ts",
@@ -690,9 +691,9 @@
690
691
  "reduction": 100
691
692
  },
692
693
  {
693
- "id": "/src/adapters/fetch/index.ts",
694
+ "id": "/src/adapters/fastify/index.ts",
694
695
  "size": 0,
695
- "origSize": 64,
696
+ "origSize": 78,
696
697
  "renderedExports": [],
697
698
  "removedExports": [],
698
699
  "dependents": [],
@@ -700,9 +701,9 @@
700
701
  "reduction": 100
701
702
  },
702
703
  {
703
- "id": "/src/adapters/fastify/index.ts",
704
+ "id": "/src/adapters/fetch/index.ts",
704
705
  "size": 0,
705
- "origSize": 78,
706
+ "origSize": 64,
706
707
  "renderedExports": [],
707
708
  "removedExports": [],
708
709
  "dependents": [],
@@ -716,8 +717,8 @@
716
717
  "renderedExports": [],
717
718
  "removedExports": [],
718
719
  "dependents": [
719
- "/src/adapters/next.ts",
720
720
  "/src/adapters/express.ts",
721
+ "/src/adapters/next.ts",
721
722
  "/src/adapters/standalone.ts"
722
723
  ],
723
724
  "percent": 0,
@@ -1,6 +1,10 @@
1
1
  export { getHTTPStatusCode, getHTTPStatusCodeFromError, } from './getHTTPStatusCode';
2
2
  export { resolveHTTPResponse } from './resolveHTTPResponse';
3
- export type { BaseHandlerOptions, HTTPBaseHandlerOptions, HTTPHeaders, HTTPRequest, HTTPResponse, OnErrorFunction, ProcedureCall, ResolveHTTPRequestOptionsContextFn, ResponseChunk, ResponseMeta, ResponseMetaFn, TRPCRequestInfo, } from './types';
3
+ export type { BaseHandlerOptions, HTTPBaseHandlerOptions, HTTPHeaders, HTTPRequest, HTTPResponse,
4
+ /**
5
+ * @deprecated Use `HTTPErrorHandler` instead
6
+ */
7
+ HTTPErrorHandler as OnErrorFunction, HTTPErrorHandler, ProcedureCall, ResolveHTTPRequestOptionsContextFn, ResponseChunk, ResponseMeta, ResponseMetaFn, TRPCRequestInfo, } from './types';
4
8
  export { getBatchStreamFormatter } from './batchStreamFormatter';
5
9
  export type { BaseContentTypeHandler, BodyResult } from './contentType';
6
10
  export { getJsonContentTypeInputs } from './contentType';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kCAAkC,EAClC,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,WAAW,EACX,YAAY;AACZ;;GAEG;AACH,gBAAgB,IAAI,eAAe,EACnC,gBAAgB,EAChB,aAAa,EACb,kCAAkC,EAClC,aAAa,EACb,YAAY,EACZ,cAAc,EACd,eAAe,GAChB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
@@ -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 { AnyRouter, inferRouterContext, inferRouterError } from '../router';
4
4
  import type { TRPCResponse } from '../rpc';
5
5
  import type { Dict } from '../types';
@@ -71,23 +71,19 @@ export type TRPCRequestInfo = {
71
71
  export type ResolveHTTPRequestOptionsContextFn<TRouter extends AnyRouter> = (opts: {
72
72
  info: TRPCRequestInfo;
73
73
  }) => Promise<inferRouterContext<TRouter>>;
74
+ interface HTTPErrorHandlerOptions<TRouter extends AnyRouter, TRequest> extends ErrorHandlerOptions<inferRouterContext<TRouter>> {
75
+ req: TRequest;
76
+ }
74
77
  /**
75
78
  * @internal
76
79
  */
77
- export type OnErrorFunction<TRouter extends AnyRouter, TRequest> = (opts: {
78
- error: TRPCError;
79
- type: ProcedureType | 'unknown';
80
- path: string | undefined;
81
- req: TRequest;
82
- input: unknown;
83
- ctx: inferRouterContext<TRouter> | undefined;
84
- }) => void;
80
+ export type HTTPErrorHandler<TRouter extends AnyRouter, TRequest> = (opts: HTTPErrorHandlerOptions<TRouter, TRequest>) => void;
85
81
  /**
86
82
  * Base interface for any response handler
87
83
  * @internal
88
84
  */
89
85
  export interface BaseHandlerOptions<TRouter extends AnyRouter, TRequest> {
90
- onError?: OnErrorFunction<TRouter, TRequest>;
86
+ onError?: HTTPErrorHandler<TRouter, TRequest>;
91
87
  /**
92
88
  * @deprecated use `allowBatching` instead, this will be removed in v12
93
89
  */
@@ -109,4 +105,5 @@ export interface BaseHandlerOptions<TRouter extends AnyRouter, TRequest> {
109
105
  */
110
106
  allowBatching?: boolean;
111
107
  }
108
+ export {};
112
109
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/unstable-core-do-not-import/http/types.ts"],"names":[],"mappings":"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"}
@@ -80,12 +80,12 @@ declare class TRPCBuilder<TContext extends object, TMeta extends object> {
80
80
  * Create a server-side caller for a router
81
81
  * @link https://trpc.io/docs/v11/server/server-side-calls
82
82
  */
83
- createCallerFactory: <TRecord extends import("./router").RouterRecord>(router: import("./router").Router<{
83
+ createCallerFactory: <TRecord extends import("./router").RouterRecord>(router: Pick<import("./router").Router<{
84
84
  ctx: TContext;
85
85
  meta: TMeta;
86
86
  errorShape: undefined extends TOptions['errorFormatter'] ? DefaultErrorShape : inferErrorFormatterShape<TOptions['errorFormatter']>;
87
87
  transformer: undefined extends TOptions['transformer'] ? false : true;
88
- }, TRecord>) => import("./router").RouterCaller<{
88
+ }, TRecord>, "_def">) => import("./router").RouterCaller<{
89
89
  ctx: TContext;
90
90
  meta: TMeta;
91
91
  errorShape: undefined extends TOptions['errorFormatter'] ? DefaultErrorShape : inferErrorFormatterShape<TOptions['errorFormatter']>;
@@ -1,3 +1,4 @@
1
+ import type { TRPCError } from './error/TRPCError';
1
2
  import type { ProcedureCallOptions } from './procedureBuilder';
2
3
  export declare const procedureTypes: readonly ["query", "mutation", "subscription"];
3
4
  /**
@@ -35,6 +36,7 @@ export interface Procedure<TType extends ProcedureType, TDef extends BuiltProced
35
36
  * Meta is not inferrable on individual procedures, only on the router
36
37
  */
37
38
  meta: unknown;
39
+ experimental_caller: TDef['experimental_caller'] extends true ? true : false;
38
40
  };
39
41
  /**
40
42
  * @internal
@@ -54,5 +56,15 @@ export type AnyProcedure = Procedure<ProcedureType, any>;
54
56
  export type inferProcedureInput<TProcedure extends AnyProcedure> = undefined extends inferProcedureParams<TProcedure>['_input_in'] ? void | inferProcedureParams<TProcedure>['_input_in'] : inferProcedureParams<TProcedure>['_input_in'];
55
57
  export type inferProcedureParams<TProcedure> = TProcedure extends AnyProcedure ? TProcedure['_def'] : never;
56
58
  export type inferProcedureOutput<TProcedure> = inferProcedureParams<TProcedure>['_output_out'];
59
+ /**
60
+ * @internal
61
+ */
62
+ export interface ErrorHandlerOptions<TContext> {
63
+ error: TRPCError;
64
+ type: ProcedureType | 'unknown';
65
+ path: string | undefined;
66
+ input: unknown;
67
+ ctx: TContext | undefined;
68
+ }
57
69
  export {};
58
70
  //# sourceMappingURL=procedure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"procedure.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/procedure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/D,eAAO,MAAM,cAAc,gDAAiD,CAAC;AAC7E;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5D,KAAK,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,UAAU,iBAAiB;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,mBAAmB,CAAC,EAAE,IAAI,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS,CACxB,KAAK,SAAS,aAAa,EAC3B,IAAI,SAAS,iBAAiB;IAE9B,IAAI,EAAE;QACJ,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5B,SAAS,EAAE,IAAI,CAAC;QAChB,IAAI,EAAE,KAAK,CAAC;QACZ;;;WAGG;QACH,IAAI,EAAE,OAAO,CAAC;KACf,CAAC;IACF;;OAEG;IACH,CACE,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,IAAI,GAC1C,IAAI,CAAC,OAAO,CAAC,GACb,oBAAoB,GACvB,OAAO,CACR,IAAI,CAAC,qBAAqB,CAAC,SAAS,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CACpE,CAAC;CACH;AAED,MAAM,WAAW,cAAc,CAAC,IAAI,SAAS,iBAAiB,CAC5D,SAAQ,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC;CAAG;AAErC,MAAM,WAAW,iBAAiB,CAAC,IAAI,SAAS,iBAAiB,CAC/D,SAAQ,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC;CAAG;AAExC,MAAM,WAAW,qBAAqB,CAAC,IAAI,SAAS,iBAAiB,CACnE,SAAQ,SAAS,CAAC,cAAc,EAAE,IAAI,CAAC;CAAG;AAE5C,MAAM,MAAM,iBAAiB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AACpD,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAC1D,MAAM,MAAM,wBAAwB,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AAEzD,MAAM,MAAM,mBAAmB,CAAC,UAAU,SAAS,YAAY,IAC7D,SAAS,SAAS,oBAAoB,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GAC3D,IAAI,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,GACpD,oBAAoB,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,CAAC;AAEpD,MAAM,MAAM,oBAAoB,CAAC,UAAU,IAAI,UAAU,SAAS,YAAY,GAC1E,UAAU,CAAC,MAAM,CAAC,GAClB,KAAK,CAAC;AACV,MAAM,MAAM,oBAAoB,CAAC,UAAU,IACzC,oBAAoB,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"procedure.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/procedure.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/procedureBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"procedureBuilder.d.ts","sourceRoot":"","sources":["../../src/unstable-core-do-not-import/procedureBuilder.ts"],"names":[],"mappings":"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"}
@@ -97,9 +97,8 @@ function createBuilder(initDef = {}) {
97
97
  };
98
98
  return builder;
99
99
  }
100
- function createResolver(_def, resolver) {
101
- const finalBuilder = createNewBuilder(_def, {
102
- type: _def.type,
100
+ function createResolver(_defIn, resolver) {
101
+ const finalBuilder = createNewBuilder(_defIn, {
103
102
  resolver,
104
103
  middlewares: [
105
104
  async function resolveMiddleware(opts) {
@@ -113,6 +112,14 @@ function createResolver(_def, resolver) {
113
112
  }
114
113
  ]
115
114
  });
115
+ const _def = {
116
+ ...finalBuilder._def,
117
+ type: _defIn.type,
118
+ experimental_caller: finalBuilder._def.caller ? true : false,
119
+ _input_in: null,
120
+ _output_out: null,
121
+ meta: finalBuilder._def.meta
122
+ };
116
123
  const invoke = createProcedureCaller(finalBuilder._def);
117
124
  const callerOverride = finalBuilder._def.caller;
118
125
  if (!callerOverride) {
@@ -122,10 +129,10 @@ function createResolver(_def, resolver) {
122
129
  return callerOverride({
123
130
  args,
124
131
  invoke,
125
- _def: finalBuilder._def
132
+ _def: _def
126
133
  });
127
134
  };
128
- callerWrapper._def = finalBuilder._def;
135
+ callerWrapper._def = _def;
129
136
  return callerWrapper;
130
137
  }
131
138
  const codeblock = `
@@ -95,9 +95,8 @@ function createBuilder(initDef = {}) {
95
95
  };
96
96
  return builder;
97
97
  }
98
- function createResolver(_def, resolver) {
99
- const finalBuilder = createNewBuilder(_def, {
100
- type: _def.type,
98
+ function createResolver(_defIn, resolver) {
99
+ const finalBuilder = createNewBuilder(_defIn, {
101
100
  resolver,
102
101
  middlewares: [
103
102
  async function resolveMiddleware(opts) {
@@ -111,6 +110,14 @@ function createResolver(_def, resolver) {
111
110
  }
112
111
  ]
113
112
  });
113
+ const _def = {
114
+ ...finalBuilder._def,
115
+ type: _defIn.type,
116
+ experimental_caller: finalBuilder._def.caller ? true : false,
117
+ _input_in: null,
118
+ _output_out: null,
119
+ meta: finalBuilder._def.meta
120
+ };
114
121
  const invoke = createProcedureCaller(finalBuilder._def);
115
122
  const callerOverride = finalBuilder._def.caller;
116
123
  if (!callerOverride) {
@@ -120,10 +127,10 @@ function createResolver(_def, resolver) {
120
127
  return callerOverride({
121
128
  args,
122
129
  invoke,
123
- _def: finalBuilder._def
130
+ _def: _def
124
131
  });
125
132
  };
126
- callerWrapper._def = finalBuilder._def;
133
+ callerWrapper._def = _def;
127
134
  return callerWrapper;
128
135
  }
129
136
  const codeblock = `
@@ -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']>)) => DecorateRouterRecord<TRecord>;
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>;
@@ -64,7 +70,7 @@ export declare function callProcedure(opts: ProcedureCallOptions & {
64
70
  procedures: RouterRecord;
65
71
  allowMethodOverride?: boolean;
66
72
  }): Promise<any>;
67
- export declare function createCallerFactory<TRoot extends AnyRootTypes>(): <TRecord extends RouterRecord>(router: Router<TRoot, TRecord>) => RouterCaller<TRoot, TRecord>;
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":"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"}
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 (ctx) {
81
- const proxy = createProxy.createRecursiveProxy(({ path , args })=>{
82
- const fullPath = path.join('.');
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(maybeContext) {
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
- const callProc = (ctx)=>procedure({
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
- if (typeof maybeContext === 'function') {
127
- const context = maybeContext();
128
- if (context instanceof Promise) {
129
- return context.then(callProc);
130
- }
131
- return callProc(context);
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 (ctx) {
79
- const proxy = createRecursiveProxy(({ path , args })=>{
80
- const fullPath = path.join('.');
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(maybeContext) {
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
- const callProc = (ctx)=>procedure({
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
- if (typeof maybeContext === 'function') {
125
- const context = maybeContext();
126
- if (context instanceof Promise) {
127
- return context.then(callProc);
128
- }
129
- return callProc(context);
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.322+13be792bf",
3
+ "version": "11.0.0-next.324+d8186919f",
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": "13be792bf876b2f54973fbe3f1f70b68e2787582"
159
+ "gitHead": "d8186919fd8e914d272dba92dd8310d3dfc1c095"
160
160
  }
@@ -9,7 +9,11 @@ export type {
9
9
  HTTPHeaders,
10
10
  HTTPRequest,
11
11
  HTTPResponse,
12
- OnErrorFunction,
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 OnErrorFunction<TRouter extends AnyRouter, TRequest> = (opts: {
93
- error: TRPCError;
94
- type: ProcedureType | 'unknown';
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?: OnErrorFunction<TRouter, TRequest>;
105
+ onError?: HTTPErrorHandler<TRouter, TRequest>;
107
106
  /**
108
107
  * @deprecated use `allowBatching` instead, this will be removed in v12
109
108
  */
@@ -1,3 +1,4 @@
1
+ import type { TRPCError } from './error/TRPCError';
1
2
  import type { ProcedureCallOptions } from './procedureBuilder';
2
3
 
3
4
  export const procedureTypes = ['query', 'mutation', 'subscription'] as const;
@@ -43,6 +44,9 @@ export interface Procedure<
43
44
  * Meta is not inferrable on individual procedures, only on the router
44
45
  */
45
46
  meta: unknown;
47
+ experimental_caller: TDef['experimental_caller'] extends true
48
+ ? true
49
+ : false;
46
50
  };
47
51
  /**
48
52
  * @internal
@@ -80,3 +84,14 @@ export type inferProcedureParams<TProcedure> = TProcedure extends AnyProcedure
80
84
  : never;
81
85
  export type inferProcedureOutput<TProcedure> =
82
86
  inferProcedureParams<TProcedure>['_output_out'];
87
+
88
+ /**
89
+ * @internal
90
+ */
91
+ export interface ErrorHandlerOptions<TContext> {
92
+ error: TRPCError;
93
+ type: ProcedureType | 'unknown';
94
+ path: string | undefined;
95
+ input: unknown;
96
+ ctx: TContext | undefined;
97
+ }
@@ -490,11 +490,10 @@ export function createBuilder<TContext, TMeta>(
490
490
  }
491
491
 
492
492
  function createResolver(
493
- _def: AnyProcedureBuilderDef & { type: ProcedureType },
493
+ _defIn: AnyProcedureBuilderDef & { type: ProcedureType },
494
494
  resolver: AnyResolver,
495
495
  ) {
496
- const finalBuilder = createNewBuilder(_def, {
497
- type: _def.type,
496
+ const finalBuilder = createNewBuilder(_defIn, {
498
497
  resolver,
499
498
  middlewares: [
500
499
  async function resolveMiddleware(opts) {
@@ -508,6 +507,15 @@ function createResolver(
508
507
  },
509
508
  ],
510
509
  });
510
+ const _def: AnyProcedure['_def'] = {
511
+ ...finalBuilder._def,
512
+ type: _defIn.type,
513
+ experimental_caller: finalBuilder._def.caller ? true : false,
514
+ _input_in: null,
515
+ _output_out: null,
516
+ meta: finalBuilder._def.meta,
517
+ };
518
+
511
519
  const invoke = createProcedureCaller(finalBuilder._def);
512
520
  const callerOverride = finalBuilder._def.caller;
513
521
  if (!callerOverride) {
@@ -517,11 +525,11 @@ function createResolver(
517
525
  return callerOverride({
518
526
  args,
519
527
  invoke,
520
- _def: finalBuilder._def as unknown as AnyProcedure['_def'],
528
+ _def: _def,
521
529
  });
522
530
  };
523
531
 
524
- callerWrapper._def = finalBuilder._def;
532
+ callerWrapper._def = _def;
525
533
  return callerWrapper;
526
534
  }
527
535
 
@@ -1,13 +1,17 @@
1
1
  import type { Observable } from '../observable';
2
2
  import { createRecursiveProxy } from './createProxy';
3
3
  import { defaultFormatter } from './error/formatter';
4
- import { TRPCError } from './error/TRPCError';
5
- import type { AnyProcedure, inferProcedureInput } from './procedure';
4
+ import { getTRPCErrorFromUnknown, TRPCError } from './error/TRPCError';
5
+ import type {
6
+ AnyProcedure,
7
+ ErrorHandlerOptions,
8
+ inferProcedureInput,
9
+ } from './procedure';
6
10
  import type { ProcedureCallOptions } from './procedureBuilder';
7
11
  import type { AnyRootTypes, RootConfig } from './rootConfig';
8
12
  import { defaultTransformer } from './transformer';
9
13
  import type { MaybePromise, ValueOf } from './types';
10
- import { mergeWithoutOverrides, omitPrototype } from './utils';
14
+ import { isFunction, mergeWithoutOverrides, omitPrototype } from './utils';
11
15
 
12
16
  export interface RouterRecord {
13
17
  [key: string]: AnyProcedure | RouterRecord;
@@ -32,6 +36,14 @@ export type DecorateRouterRecord<TRecord extends RouterRecord> = {
32
36
  : never;
33
37
  };
34
38
 
39
+ /**
40
+ * @internal
41
+ */
42
+
43
+ export type RouterCallerErrorHandler<TContext> = (
44
+ opts: ErrorHandlerOptions<TContext>,
45
+ ) => void;
46
+
35
47
  /**
36
48
  * @internal
37
49
  */
@@ -45,6 +57,9 @@ export type RouterCaller<
45
57
  * e.g. wrapped in `React.cache` to avoid unnecessary computations
46
58
  */
47
59
  ctx: TRoot['ctx'] | (() => MaybePromise<TRoot['ctx']>),
60
+ options?: {
61
+ onError?: RouterCallerErrorHandler<TRoot['ctx']>;
62
+ },
48
63
  ) => DecorateRouterRecord<TRecord>;
49
64
 
50
65
  export interface Router<
@@ -191,21 +206,9 @@ export function createRouterFactory<TRoot extends AnyRootTypes>(
191
206
  return {
192
207
  ...record,
193
208
  _def,
194
- createCaller(ctx: TRoot['ctx']) {
195
- const proxy = createRecursiveProxy(({ path, args }) => {
196
- const fullPath = path.join('.');
197
- const procedure = _def.procedures[fullPath] as AnyProcedure;
198
-
199
- return procedure({
200
- path: fullPath,
201
- getRawInput: async () => args[0],
202
- ctx,
203
- type: procedure._def.type,
204
- });
205
- });
206
-
207
- return proxy as ReturnType<RouterCaller<any, any>>;
208
- },
209
+ createCaller: createCallerFactory<TRoot>()({
210
+ _def,
211
+ }),
209
212
  };
210
213
  }
211
214
 
@@ -244,34 +247,44 @@ export function callProcedure(
244
247
 
245
248
  export function createCallerFactory<TRoot extends AnyRootTypes>() {
246
249
  return function createCallerInner<TRecord extends RouterRecord>(
247
- router: Router<TRoot, TRecord>,
250
+ router: Pick<Router<TRoot, TRecord>, '_def'>,
248
251
  ): RouterCaller<TRoot, TRecord> {
249
252
  const _def = router._def;
250
253
  type Context = TRoot['ctx'];
251
254
 
252
- return function createCaller(maybeContext) {
253
- const proxy = createRecursiveProxy(({ path, args }) => {
255
+ return function createCaller(
256
+ ctxOrCallback,
257
+ options?: {
258
+ onError?: RouterCallerErrorHandler<Context>;
259
+ },
260
+ ) {
261
+ const proxy = createRecursiveProxy(async ({ path, args }) => {
254
262
  const fullPath = path.join('.');
255
263
 
256
264
  const procedure = _def.procedures[fullPath] as AnyProcedure;
257
265
 
258
- const callProc = (ctx: Context) =>
259
- procedure({
266
+ let ctx: Context | undefined = undefined;
267
+ try {
268
+ ctx = isFunction(ctxOrCallback)
269
+ ? await Promise.resolve(ctxOrCallback())
270
+ : ctxOrCallback;
271
+
272
+ return await procedure({
260
273
  path: fullPath,
261
274
  getRawInput: async () => args[0],
262
275
  ctx,
263
276
  type: procedure._def.type,
264
277
  });
265
-
266
- if (typeof maybeContext === 'function') {
267
- const context = (maybeContext as () => MaybePromise<Context>)();
268
- if (context instanceof Promise) {
269
- return context.then(callProc);
270
- }
271
- return callProc(context);
278
+ } catch (cause) {
279
+ options?.onError?.({
280
+ ctx,
281
+ error: getTRPCErrorFromUnknown(cause),
282
+ input: args[0],
283
+ path: fullPath,
284
+ type: procedure._def.type,
285
+ });
286
+ throw cause;
272
287
  }
273
-
274
- return callProc(maybeContext);
275
288
  });
276
289
 
277
290
  return proxy as ReturnType<RouterCaller<any, any>>;
@@ -27,6 +27,11 @@ export function isObject(value: unknown): value is Record<string, unknown> {
27
27
  return !!value && !Array.isArray(value) && typeof value === 'object';
28
28
  }
29
29
 
30
+ type AnyFn = (...args: any[]) => unknown;
31
+ export function isFunction(fn: unknown): fn is AnyFn {
32
+ return typeof fn === 'function';
33
+ }
34
+
30
35
  /**
31
36
  * Create an object without inheriting anything from `Object.prototype`
32
37
  * @internal