@trpc/server 11.0.0-next-alpha.133 → 11.0.0-next-alpha.140

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 (60) hide show
  1. package/dist/adapters/aws-lambda/index.js +2 -2
  2. package/dist/adapters/aws-lambda/index.mjs +2 -2
  3. package/dist/adapters/express.js +3 -3
  4. package/dist/adapters/express.mjs +3 -3
  5. package/dist/adapters/fastify/index.js +2 -2
  6. package/dist/adapters/fastify/index.mjs +2 -2
  7. package/dist/adapters/fetch/index.js +2 -2
  8. package/dist/adapters/fetch/index.mjs +2 -2
  9. package/dist/adapters/next.js +3 -3
  10. package/dist/adapters/next.mjs +3 -3
  11. package/dist/adapters/node-http/index.js +3 -3
  12. package/dist/adapters/node-http/index.mjs +3 -3
  13. package/dist/adapters/standalone.js +3 -3
  14. package/dist/adapters/standalone.mjs +3 -3
  15. package/dist/adapters/ws.js +1 -1
  16. package/dist/adapters/ws.mjs +1 -1
  17. package/dist/bundle-analysis.json +73 -72
  18. package/dist/core/index.d.ts +2 -3
  19. package/dist/core/index.d.ts.map +1 -1
  20. package/dist/core/initTRPC.d.ts +16 -41
  21. package/dist/core/initTRPC.d.ts.map +1 -1
  22. package/dist/core/internals/procedureBuilder.d.ts +46 -60
  23. package/dist/core/internals/procedureBuilder.d.ts.map +1 -1
  24. package/dist/core/internals/utils.d.ts +1 -9
  25. package/dist/core/internals/utils.d.ts.map +1 -1
  26. package/dist/core/middleware.d.ts +33 -85
  27. package/dist/core/middleware.d.ts.map +1 -1
  28. package/dist/core/router.d.ts +6 -1
  29. package/dist/core/router.d.ts.map +1 -1
  30. package/dist/http/index.js +2 -2
  31. package/dist/http/index.mjs +2 -2
  32. package/dist/index.js +12 -3
  33. package/dist/index.mjs +13 -5
  34. package/dist/{nodeHTTPRequestHandler-84248270.js → nodeHTTPRequestHandler-3f218e71.js} +1 -1
  35. package/dist/{nodeHTTPRequestHandler-fb26ba4e.mjs → nodeHTTPRequestHandler-c92e159b.mjs} +1 -1
  36. package/dist/{nodeHTTPRequestHandler-e24d9576.js → nodeHTTPRequestHandler-f04ea0b8.js} +1 -1
  37. package/dist/{procedureBuilder-c990500b.js → procedureBuilder-51db231f.js} +13 -21
  38. package/dist/{procedureBuilder-88b211d2.mjs → procedureBuilder-955ce9bc.mjs} +12 -17
  39. package/dist/{procedureBuilder-0ee77d9c.js → procedureBuilder-f3a66e27.js} +12 -17
  40. package/dist/{resolveHTTPResponse-c5c776d4.js → resolveHTTPResponse-62594a39.js} +1 -1
  41. package/dist/{resolveHTTPResponse-cbea0b76.js → resolveHTTPResponse-e5110d33.js} +1 -1
  42. package/dist/{resolveHTTPResponse-6ce6731d.mjs → resolveHTTPResponse-fda30ede.mjs} +1 -1
  43. package/dist/{router-6e6a40b3.js → router-05a567ea.js} +19 -0
  44. package/dist/{router-2e54d451.js → router-40fcf5e5.js} +19 -1
  45. package/dist/{router-accbd60f.mjs → router-8564439c.mjs} +19 -1
  46. package/dist/shared/internal/serialize.d.ts +38 -8
  47. package/dist/shared/internal/serialize.d.ts.map +1 -1
  48. package/dist/unstableInternalsExport.js +2 -2
  49. package/dist/unstableInternalsExport.mjs +2 -2
  50. package/package.json +2 -2
  51. package/src/core/index.ts +3 -2
  52. package/src/core/initTRPC.ts +18 -3
  53. package/src/core/internals/procedureBuilder.ts +174 -111
  54. package/src/core/internals/utils.ts +1 -14
  55. package/src/core/middleware.ts +114 -163
  56. package/src/core/router.ts +30 -1
  57. package/src/shared/internal/serialize.ts +58 -23
  58. package/dist/core/internals/builderTypes.d.ts +0 -14
  59. package/dist/core/internals/builderTypes.d.ts.map +0 -1
  60. package/src/core/internals/builderTypes.ts +0 -14
package/dist/index.js CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var router = require('./router-6e6a40b3.js');
5
+ var router = require('./router-05a567ea.js');
6
6
  var TRPCError = require('./TRPCError-0b220715.js');
7
- var procedureBuilder = require('./procedureBuilder-0ee77d9c.js');
7
+ var procedureBuilder = require('./procedureBuilder-f3a66e27.js');
8
8
  var index = require('./index-a496f86b.js');
9
9
  var config = require('./config-774dae36.js');
10
10
  require('./getCauseFromUnknown-d535264a.js');
@@ -59,18 +59,26 @@ function createTRPCInner() {
59
59
  */ _config: config$1,
60
60
  /**
61
61
  * Builder object for creating procedures
62
+ * @see https://trpc.io/docs/server/procedures
62
63
  */ procedure: procedureBuilder.createBuilder({
63
64
  meta: runtime?.defaultMeta
64
65
  }),
65
66
  /**
66
67
  * Create reusable middlewares
68
+ * @see https://trpc.io/docs/server/middlewares
67
69
  */ middleware: procedureBuilder.createMiddlewareFactory(),
68
70
  /**
69
71
  * Create a router
72
+ * @see https://trpc.io/docs/server/routers
70
73
  */ router: router.createRouterFactory(config$1),
71
74
  /**
72
75
  * Merge Routers
73
- */ mergeRouters: procedureBuilder.mergeRouters
76
+ * @see https://trpc.io/docs/server/merging-routers
77
+ */ mergeRouters: procedureBuilder.mergeRouters,
78
+ /**
79
+ * Create a server-side caller for a router
80
+ * @see https://trpc.io/docs/server/server-side-calls
81
+ */ createCallerFactory: router.createCallerFactory()
74
82
  };
75
83
  };
76
84
  }
@@ -82,6 +90,7 @@ const procedureTypes = [
82
90
  ];
83
91
 
84
92
  exports.callProcedure = router.callProcedure;
93
+ exports.createCallerFactory = router.createCallerFactory;
85
94
  exports.defaultTransformer = router.defaultTransformer;
86
95
  exports.getDataTransformer = router.getDataTransformer;
87
96
  exports.TRPCError = TRPCError.TRPCError;
package/dist/index.mjs CHANGED
@@ -1,8 +1,8 @@
1
- import { d as defaultFormatter, g as getDataTransformer, a as defaultTransformer, c as createRouterFactory } from './router-accbd60f.mjs';
2
- export { b as callProcedure, a as defaultTransformer, g as getDataTransformer } from './router-accbd60f.mjs';
1
+ import { d as defaultFormatter, g as getDataTransformer, a as defaultTransformer, c as createRouterFactory, b as createCallerFactory } from './router-8564439c.mjs';
2
+ export { e as callProcedure, b as createCallerFactory, a as defaultTransformer, g as getDataTransformer } from './router-8564439c.mjs';
3
3
  export { T as TRPCError, g as getTRPCErrorFromUnknown } from './TRPCError-7e8e2a1b.mjs';
4
- import { c as createBuilder, a as createMiddlewareFactory, m as mergeRouters } from './procedureBuilder-88b211d2.mjs';
5
- export { b as createInputMiddleware, d as createOutputMiddleware, e as experimental_standaloneMiddleware } from './procedureBuilder-88b211d2.mjs';
4
+ import { c as createBuilder, a as createMiddlewareFactory, m as mergeRouters } from './procedureBuilder-955ce9bc.mjs';
5
+ export { b as createInputMiddleware, d as createOutputMiddleware, e as experimental_standaloneMiddleware } from './procedureBuilder-955ce9bc.mjs';
6
6
  import { c as createFlatProxy } from './index-a9e3e610.mjs';
7
7
  import { i as isServerDefault } from './config-50853f49.mjs';
8
8
  import './getCauseFromUnknown-2d66414a.mjs';
@@ -57,18 +57,26 @@ function createTRPCInner() {
57
57
  */ _config: config,
58
58
  /**
59
59
  * Builder object for creating procedures
60
+ * @see https://trpc.io/docs/server/procedures
60
61
  */ procedure: createBuilder({
61
62
  meta: runtime?.defaultMeta
62
63
  }),
63
64
  /**
64
65
  * Create reusable middlewares
66
+ * @see https://trpc.io/docs/server/middlewares
65
67
  */ middleware: createMiddlewareFactory(),
66
68
  /**
67
69
  * Create a router
70
+ * @see https://trpc.io/docs/server/routers
68
71
  */ router: createRouterFactory(config),
69
72
  /**
70
73
  * Merge Routers
71
- */ mergeRouters
74
+ * @see https://trpc.io/docs/server/merging-routers
75
+ */ mergeRouters,
76
+ /**
77
+ * Create a server-side caller for a router
78
+ * @see https://trpc.io/docs/server/server-side-calls
79
+ */ createCallerFactory: createCallerFactory()
72
80
  };
73
81
  };
74
82
  }
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  require('./transformTRPCResponse-9f3b865f.js');
4
- var resolveHTTPResponse = require('./resolveHTTPResponse-cbea0b76.js');
4
+ var resolveHTTPResponse = require('./resolveHTTPResponse-e5110d33.js');
5
5
  var batchStreamFormatter = require('./batchStreamFormatter-93cdcdd4.js');
6
6
  var adapters_nodeHttp_contentType_json_index = require('./adapters/node-http/content-type/json/index.js');
7
7
 
@@ -1,5 +1,5 @@
1
1
  import './transformTRPCResponse-31040a38.mjs';
2
- import { r as resolveHTTPResponse } from './resolveHTTPResponse-6ce6731d.mjs';
2
+ import { r as resolveHTTPResponse } from './resolveHTTPResponse-fda30ede.mjs';
3
3
  import { g as getBatchStreamFormatter } from './batchStreamFormatter-fc1ffb26.mjs';
4
4
  import { nodeHTTPJSONContentTypeHandler } from './adapters/node-http/content-type/json/index.mjs';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import './transformTRPCResponse-59486a84.js';
2
- import { r as resolveHTTPResponse } from './resolveHTTPResponse-c5c776d4.js';
2
+ import { r as resolveHTTPResponse } from './resolveHTTPResponse-62594a39.js';
3
3
  import { g as getBatchStreamFormatter } from './batchStreamFormatter-2c1405a1.js';
4
4
  import { nodeHTTPJSONContentTypeHandler } from './adapters/node-http/content-type/json/index.js';
5
5
 
@@ -1,4 +1,4 @@
1
- import { d as defaultFormatter, a as defaultTransformer, c as createRouterFactory } from './router-2e54d451.js';
1
+ import { d as defaultFormatter, a as defaultTransformer, c as createRouterFactory } from './router-40fcf5e5.js';
2
2
  import { T as TRPCError, g as getTRPCErrorFromUnknown } from './TRPCError-2bb6a7d0.js';
3
3
 
4
4
  /**
@@ -12,10 +12,7 @@ function createMiddlewareFactory() {
12
12
  const pipedMiddleware = '_middlewares' in middlewareBuilderOrFn
13
13
  ? middlewareBuilderOrFn._middlewares
14
14
  : [middlewareBuilderOrFn];
15
- return createMiddlewareInner([
16
- ...middlewares,
17
- ...pipedMiddleware,
18
- ]);
15
+ return createMiddlewareInner([...middlewares, ...pipedMiddleware]);
19
16
  },
20
17
  };
21
18
  }
@@ -35,7 +32,7 @@ function isPlainObject(obj) {
35
32
  * Please note, `trpc-openapi` uses this function.
36
33
  */
37
34
  function createInputMiddleware(parse) {
38
- const inputMiddleware = async (opts) => {
35
+ const inputMiddleware = async function inputValidatorMiddleware(opts) {
39
36
  let parsedInput;
40
37
  const rawInput = await opts.getRawInput();
41
38
  try {
@@ -63,7 +60,7 @@ function createInputMiddleware(parse) {
63
60
  * @internal
64
61
  */
65
62
  function createOutputMiddleware(parse) {
66
- const outputMiddleware = async ({ next }) => {
63
+ const outputMiddleware = async function outputValidatorMiddleware({ next }) {
67
64
  const result = await next();
68
65
  if (!result.ok) {
69
66
  // pass through failures without validating
@@ -198,7 +195,7 @@ function createBuilder(initDef = {}) {
198
195
  middlewares: [],
199
196
  ...initDef,
200
197
  };
201
- return {
198
+ const builder = {
202
199
  _def,
203
200
  input(input) {
204
201
  const parser = getParseFn(input);
@@ -208,15 +205,15 @@ function createBuilder(initDef = {}) {
208
205
  });
209
206
  },
210
207
  output(output) {
211
- const parseOutput = getParseFn(output);
208
+ const parser = getParseFn(output);
212
209
  return createNewBuilder(_def, {
213
210
  output,
214
- middlewares: [createOutputMiddleware(parseOutput)],
211
+ middlewares: [createOutputMiddleware(parser)],
215
212
  });
216
213
  },
217
214
  meta(meta) {
218
215
  return createNewBuilder(_def, {
219
- meta: meta,
216
+ meta,
220
217
  });
221
218
  },
222
219
  use(middlewareBuilderOrFn) {
@@ -238,6 +235,7 @@ function createBuilder(initDef = {}) {
238
235
  return createResolver({ ..._def, type: 'subscription' }, resolver);
239
236
  },
240
237
  };
238
+ return builder;
241
239
  }
242
240
  function createResolver(_def, resolver) {
243
241
  const finalBuilder = createNewBuilder(_def, {
@@ -257,14 +255,8 @@ function createResolver(_def, resolver) {
257
255
  return createProcedureCaller(finalBuilder._def);
258
256
  }
259
257
  const codeblock = `
260
- If you want to call this function on the server, you do the following:
261
258
  This is a client-only function.
262
-
263
- const caller = appRouter.createCaller({
264
- /* ... your context */
265
- });
266
-
267
- const result = await caller.call('myProcedure', input);
259
+ If you want to call this function on the server, see https://trpc.io/docs/server/server-side-calls
268
260
  `.trim();
269
261
  function createProcedureCaller(_def) {
270
262
  async function procedure(opts) {
@@ -273,10 +265,10 @@ function createProcedureCaller(_def) {
273
265
  throw new Error(codeblock);
274
266
  }
275
267
  // run the middlewares recursively with the resolver as the last one
276
- const callRecursive = async (callOpts = {
268
+ async function callRecursive(callOpts = {
277
269
  index: 0,
278
270
  ctx: opts.ctx,
279
- }) => {
271
+ }) {
280
272
  try {
281
273
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
282
274
  const middleware = _def.middlewares[callOpts.index];
@@ -312,7 +304,7 @@ function createProcedureCaller(_def) {
312
304
  marker: middlewareMarker,
313
305
  };
314
306
  }
315
- };
307
+ }
316
308
  // there's always at least one "next" since we wrap this.resolver in a middleware
317
309
  const result = await callRecursive();
318
310
  if (!result) {
@@ -1,4 +1,4 @@
1
- import { d as defaultFormatter, a as defaultTransformer, c as createRouterFactory } from './router-accbd60f.mjs';
1
+ import { d as defaultFormatter, a as defaultTransformer, c as createRouterFactory } from './router-8564439c.mjs';
2
2
  import { T as TRPCError, g as getTRPCErrorFromUnknown } from './TRPCError-7e8e2a1b.mjs';
3
3
 
4
4
  /**
@@ -35,7 +35,7 @@ function isPlainObject(obj) {
35
35
  * @internal
36
36
  * Please note, `trpc-openapi` uses this function.
37
37
  */ function createInputMiddleware(parse) {
38
- const inputMiddleware = async (opts)=>{
38
+ const inputMiddleware = async function inputValidatorMiddleware(opts) {
39
39
  let parsedInput;
40
40
  const rawInput = await opts.getRawInput();
41
41
  try {
@@ -61,7 +61,7 @@ function isPlainObject(obj) {
61
61
  /**
62
62
  * @internal
63
63
  */ function createOutputMiddleware(parse) {
64
- const outputMiddleware = async ({ next })=>{
64
+ const outputMiddleware = async function outputValidatorMiddleware({ next }) {
65
65
  const result = await next();
66
66
  if (!result.ok) {
67
67
  // pass through failures without validating
@@ -197,7 +197,7 @@ function createBuilder(initDef = {}) {
197
197
  middlewares: [],
198
198
  ...initDef
199
199
  };
200
- return {
200
+ const builder = {
201
201
  _def,
202
202
  input (input) {
203
203
  const parser = getParseFn(input);
@@ -211,17 +211,17 @@ function createBuilder(initDef = {}) {
211
211
  });
212
212
  },
213
213
  output (output) {
214
- const parseOutput = getParseFn(output);
214
+ const parser = getParseFn(output);
215
215
  return createNewBuilder(_def, {
216
216
  output,
217
217
  middlewares: [
218
- createOutputMiddleware(parseOutput)
218
+ createOutputMiddleware(parser)
219
219
  ]
220
220
  });
221
221
  },
222
222
  meta (meta) {
223
223
  return createNewBuilder(_def, {
224
- meta: meta
224
+ meta
225
225
  });
226
226
  },
227
227
  use (middlewareBuilderOrFn) {
@@ -252,6 +252,7 @@ function createBuilder(initDef = {}) {
252
252
  }, resolver);
253
253
  }
254
254
  };
255
+ return builder;
255
256
  }
256
257
  function createResolver(_def, resolver) {
257
258
  const finalBuilder = createNewBuilder(_def, {
@@ -271,14 +272,8 @@ function createResolver(_def, resolver) {
271
272
  return createProcedureCaller(finalBuilder._def);
272
273
  }
273
274
  const codeblock = `
274
- If you want to call this function on the server, you do the following:
275
275
  This is a client-only function.
276
-
277
- const caller = appRouter.createCaller({
278
- /* ... your context */
279
- });
280
-
281
- const result = await caller.call('myProcedure', input);
276
+ If you want to call this function on the server, see https://trpc.io/docs/server/server-side-calls
282
277
  `.trim();
283
278
  function createProcedureCaller(_def) {
284
279
  async function procedure(opts) {
@@ -287,10 +282,10 @@ function createProcedureCaller(_def) {
287
282
  throw new Error(codeblock);
288
283
  }
289
284
  // run the middlewares recursively with the resolver as the last one
290
- const callRecursive = async (callOpts = {
285
+ async function callRecursive(callOpts = {
291
286
  index: 0,
292
287
  ctx: opts.ctx
293
- })=>{
288
+ }) {
294
289
  try {
295
290
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
296
291
  const middleware = _def.middlewares[callOpts.index];
@@ -322,7 +317,7 @@ function createProcedureCaller(_def) {
322
317
  marker: middlewareMarker
323
318
  };
324
319
  }
325
- };
320
+ }
326
321
  // there's always at least one "next" since we wrap this.resolver in a middleware
327
322
  const result = await callRecursive();
328
323
  if (!result) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var router = require('./router-6e6a40b3.js');
3
+ var router = require('./router-05a567ea.js');
4
4
  var TRPCError = require('./TRPCError-0b220715.js');
5
5
 
6
6
  /**
@@ -37,7 +37,7 @@ function isPlainObject(obj) {
37
37
  * @internal
38
38
  * Please note, `trpc-openapi` uses this function.
39
39
  */ function createInputMiddleware(parse) {
40
- const inputMiddleware = async (opts)=>{
40
+ const inputMiddleware = async function inputValidatorMiddleware(opts) {
41
41
  let parsedInput;
42
42
  const rawInput = await opts.getRawInput();
43
43
  try {
@@ -63,7 +63,7 @@ function isPlainObject(obj) {
63
63
  /**
64
64
  * @internal
65
65
  */ function createOutputMiddleware(parse) {
66
- const outputMiddleware = async ({ next })=>{
66
+ const outputMiddleware = async function outputValidatorMiddleware({ next }) {
67
67
  const result = await next();
68
68
  if (!result.ok) {
69
69
  // pass through failures without validating
@@ -199,7 +199,7 @@ function createBuilder(initDef = {}) {
199
199
  middlewares: [],
200
200
  ...initDef
201
201
  };
202
- return {
202
+ const builder = {
203
203
  _def,
204
204
  input (input) {
205
205
  const parser = getParseFn(input);
@@ -213,17 +213,17 @@ function createBuilder(initDef = {}) {
213
213
  });
214
214
  },
215
215
  output (output) {
216
- const parseOutput = getParseFn(output);
216
+ const parser = getParseFn(output);
217
217
  return createNewBuilder(_def, {
218
218
  output,
219
219
  middlewares: [
220
- createOutputMiddleware(parseOutput)
220
+ createOutputMiddleware(parser)
221
221
  ]
222
222
  });
223
223
  },
224
224
  meta (meta) {
225
225
  return createNewBuilder(_def, {
226
- meta: meta
226
+ meta
227
227
  });
228
228
  },
229
229
  use (middlewareBuilderOrFn) {
@@ -254,6 +254,7 @@ function createBuilder(initDef = {}) {
254
254
  }, resolver);
255
255
  }
256
256
  };
257
+ return builder;
257
258
  }
258
259
  function createResolver(_def, resolver) {
259
260
  const finalBuilder = createNewBuilder(_def, {
@@ -273,14 +274,8 @@ function createResolver(_def, resolver) {
273
274
  return createProcedureCaller(finalBuilder._def);
274
275
  }
275
276
  const codeblock = `
276
- If you want to call this function on the server, you do the following:
277
277
  This is a client-only function.
278
-
279
- const caller = appRouter.createCaller({
280
- /* ... your context */
281
- });
282
-
283
- const result = await caller.call('myProcedure', input);
278
+ If you want to call this function on the server, see https://trpc.io/docs/server/server-side-calls
284
279
  `.trim();
285
280
  function createProcedureCaller(_def) {
286
281
  async function procedure(opts) {
@@ -289,10 +284,10 @@ function createProcedureCaller(_def) {
289
284
  throw new Error(codeblock);
290
285
  }
291
286
  // run the middlewares recursively with the resolver as the last one
292
- const callRecursive = async (callOpts = {
287
+ async function callRecursive(callOpts = {
293
288
  index: 0,
294
289
  ctx: opts.ctx
295
- })=>{
290
+ }) {
296
291
  try {
297
292
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
298
293
  const middleware = _def.middlewares[callOpts.index];
@@ -324,7 +319,7 @@ function createProcedureCaller(_def) {
324
319
  marker: middlewareMarker
325
320
  };
326
321
  }
327
- };
322
+ }
328
323
  // there's always at least one "next" since we wrap this.resolver in a middleware
329
324
  const result = await callRecursive();
330
325
  if (!result) {
@@ -1,4 +1,4 @@
1
- import { b as callProcedure } from './router-2e54d451.js';
1
+ import { e as callProcedure } from './router-40fcf5e5.js';
2
2
  import { T as TRPCError, g as getTRPCErrorFromUnknown } from './TRPCError-2bb6a7d0.js';
3
3
  import './config-e3dd843b.js';
4
4
  import { t as transformTRPCResponse, g as getHTTPStatusCode, a as getErrorShape } from './transformTRPCResponse-59486a84.js';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var router = require('./router-6e6a40b3.js');
3
+ var router = require('./router-05a567ea.js');
4
4
  var TRPCError = require('./TRPCError-0b220715.js');
5
5
  require('./config-774dae36.js');
6
6
  var transformTRPCResponse = require('./transformTRPCResponse-9f3b865f.js');
@@ -1,4 +1,4 @@
1
- import { b as callProcedure } from './router-accbd60f.mjs';
1
+ import { e as callProcedure } from './router-8564439c.mjs';
2
2
  import { T as TRPCError, g as getTRPCErrorFromUnknown } from './TRPCError-7e8e2a1b.mjs';
3
3
  import './config-50853f49.mjs';
4
4
  import { t as transformTRPCResponse, g as getHTTPStatusCode, a as getErrorShape } from './transformTRPCResponse-31040a38.mjs';
@@ -128,8 +128,27 @@ function isProcedure(procedureOrRouter) {
128
128
  }
129
129
  return proc(opts);
130
130
  }
131
+ function createCallerFactory() {
132
+ return function createCallerInner(router) {
133
+ const _def = router._def;
134
+ return function createCaller(ctx) {
135
+ const proxy = index.createRecursiveProxy(({ path , args })=>{
136
+ const fullPath = path.join('.');
137
+ const procedure = _def.procedures[fullPath];
138
+ return procedure({
139
+ path: fullPath,
140
+ getRawInput: async ()=>args[0],
141
+ ctx,
142
+ type: procedure._def.type
143
+ });
144
+ });
145
+ return proxy;
146
+ };
147
+ };
148
+ }
131
149
 
132
150
  exports.callProcedure = callProcedure;
151
+ exports.createCallerFactory = createCallerFactory;
133
152
  exports.createRouterFactory = createRouterFactory;
134
153
  exports.defaultFormatter = defaultFormatter;
135
154
  exports.defaultTransformer = defaultTransformer;
@@ -123,5 +123,23 @@ function callProcedure(opts) {
123
123
  }
124
124
  return proc(opts);
125
125
  }
126
+ function createCallerFactory() {
127
+ return function createCallerInner(router) {
128
+ const _def = router._def;
129
+ return function createCaller(ctx) {
130
+ const proxy = createRecursiveProxy(({ path, args }) => {
131
+ const fullPath = path.join('.');
132
+ const procedure = _def.procedures[fullPath];
133
+ return procedure({
134
+ path: fullPath,
135
+ getRawInput: async () => args[0],
136
+ ctx,
137
+ type: procedure._def.type,
138
+ });
139
+ });
140
+ return proxy;
141
+ };
142
+ };
143
+ }
126
144
 
127
- export { defaultTransformer as a, callProcedure as b, createRouterFactory as c, defaultFormatter as d, getDataTransformer as g };
145
+ export { defaultTransformer as a, createCallerFactory as b, createRouterFactory as c, defaultFormatter as d, callProcedure as e, getDataTransformer as g };
@@ -126,5 +126,23 @@ function isProcedure(procedureOrRouter) {
126
126
  }
127
127
  return proc(opts);
128
128
  }
129
+ function createCallerFactory() {
130
+ return function createCallerInner(router) {
131
+ const _def = router._def;
132
+ return function createCaller(ctx) {
133
+ const proxy = createRecursiveProxy(({ path , args })=>{
134
+ const fullPath = path.join('.');
135
+ const procedure = _def.procedures[fullPath];
136
+ return procedure({
137
+ path: fullPath,
138
+ getRawInput: async ()=>args[0],
139
+ ctx,
140
+ type: procedure._def.type
141
+ });
142
+ });
143
+ return proxy;
144
+ };
145
+ };
146
+ }
129
147
 
130
- export { defaultTransformer as a, callProcedure as b, createRouterFactory as c, defaultFormatter as d, getDataTransformer as g };
148
+ export { defaultTransformer as a, createCallerFactory as b, createRouterFactory as c, defaultFormatter as d, callProcedure as e, getDataTransformer as g };
@@ -12,21 +12,51 @@ export type Serialize<T> = IsAny<T> extends true ? any : unknown extends T ? unk
12
12
  } ? U : T extends [] ? [] : T extends [unknown, ...unknown[]] ? SerializeTuple<T> : T extends readonly (infer U)[] ? (U extends NonJsonPrimitive ? null : Serialize<U>)[] : T extends object ? IsRecord<T> extends true ? Record<keyof T, Serialize<T[keyof T]>> : Simplify<SerializeObject<UndefinedToOptional<T>>> : never;
13
13
  /** JSON serialize [tuples](https://www.typescriptlang.org/docs/handbook/2/objects.html#tuple-types) */
14
14
  type SerializeTuple<T extends [unknown, ...unknown[]]> = {
15
- [k in keyof T]: T[k] extends NonJsonPrimitive ? null : Serialize<T[k]>;
15
+ [K in keyof T]: T[K] extends NonJsonPrimitive ? null : Serialize<T[K]>;
16
16
  };
17
- type SerializeObjectKey<T extends Record<any, any>, TKey> = TKey extends symbol ? never : IsAny<T[TKey]> extends true ? TKey : unknown extends T[TKey] ? TKey : T[TKey] extends NonJsonPrimitive ? never : TKey;
17
+ type SerializeObjectKey<T extends Record<any, any>, K> = K extends symbol ? never : IsAny<T[K]> extends true ? K : unknown extends T[K] ? K : T[K] extends NonJsonPrimitive ? never : K;
18
18
  /**
19
19
  * JSON serialize objects (not including arrays) and classes
20
20
  * @internal
21
21
  **/
22
22
  export type SerializeObject<T extends object> = {
23
- [$Key in keyof T as SerializeObjectKey<T, $Key>]: Serialize<T[$Key]>;
23
+ [K in keyof T as SerializeObjectKey<T, K>]: Serialize<T[K]>;
24
24
  };
25
- type FilterDefinedKeys<TObj extends object> = Exclude<{
26
- [TKey in keyof TObj]: undefined extends TObj[TKey] ? never : TKey;
27
- }[keyof TObj], undefined>;
28
- type UndefinedToOptional<T extends object> = Pick<WithoutIndexSignature<T>, FilterDefinedKeys<WithoutIndexSignature<T>>> & {
29
- [k in keyof Omit<T, FilterDefinedKeys<T>>]?: Exclude<T[k], undefined>;
25
+ /**
26
+ * Extract keys from T where the value dosen't extend undefined
27
+ * Note: Can't parse IndexSignature or Record types
28
+ */
29
+ type FilterDefinedKeys<T extends object> = Exclude<{
30
+ [K in keyof T]: undefined extends T[K] ? never : K;
31
+ }[keyof T], undefined>;
32
+ /**
33
+ * Get value of exactOptionalPropertyTypes config
34
+ */
35
+ type ExactOptionalPropertyTypes = {
36
+ a?: 0 | undefined;
37
+ } extends {
38
+ a?: 0;
39
+ } ? false : true;
40
+ /**
41
+ * Check if T has an index signature
42
+ */
43
+ type HasIndexSignature<T extends object> = string extends keyof T ? true : false;
44
+ /**
45
+ * { [key: string]: number | undefined } --> { [key: string]: number }
46
+ */
47
+ type HandleIndexSignature<T extends object> = {
48
+ [K in keyof Omit<T, keyof WithoutIndexSignature<T>>]: Exclude<T[K], undefined>;
49
+ };
50
+ /**
51
+ * { a: number | undefined } --> { a?: number }
52
+ * Note: Can't parse IndexSignature or Record types
53
+ */
54
+ type HandleUndefined<T extends object> = {
55
+ [K in keyof Omit<T, FilterDefinedKeys<T>>]?: Exclude<T[K], undefined>;
30
56
  };
57
+ /**
58
+ * Handle undefined, index signature and records
59
+ */
60
+ type UndefinedToOptional<T extends object> = Pick<WithoutIndexSignature<T>, FilterDefinedKeys<WithoutIndexSignature<T>>> & (ExactOptionalPropertyTypes extends true ? HandleIndexSignature<T> & HandleUndefined<WithoutIndexSignature<T>> : HasIndexSignature<T> extends true ? HandleIndexSignature<T> : HandleUndefined<T>);
31
61
  export {};
32
62
  //# sourceMappingURL=serialize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/shared/internal/serialize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../../src/shared/internal/serialize.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var procedureBuilder = require('./procedureBuilder-0ee77d9c.js');
6
- require('./router-6e6a40b3.js');
5
+ var procedureBuilder = require('./procedureBuilder-f3a66e27.js');
6
+ require('./router-05a567ea.js');
7
7
  require('./TRPCError-0b220715.js');
8
8
  require('./getCauseFromUnknown-d535264a.js');
9
9
  require('./index-a496f86b.js');
@@ -1,5 +1,5 @@
1
- export { c as createBuilder, m as mergeRouters, f as middlewareMarker, u as unsetMarker } from './procedureBuilder-88b211d2.mjs';
2
- import './router-accbd60f.mjs';
1
+ export { c as createBuilder, m as mergeRouters, f as middlewareMarker, u as unsetMarker } from './procedureBuilder-955ce9bc.mjs';
2
+ import './router-8564439c.mjs';
3
3
  import './TRPCError-7e8e2a1b.mjs';
4
4
  import './getCauseFromUnknown-2d66414a.mjs';
5
5
  import './index-a9e3e610.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/server",
3
- "version": "11.0.0-next-alpha.133+b786d25b0",
3
+ "version": "11.0.0-next-alpha.140+13b457ede",
4
4
  "description": "The tRPC server library",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -179,5 +179,5 @@
179
179
  "funding": [
180
180
  "https://trpc.io/sponsor"
181
181
  ],
182
- "gitHead": "b786d25b0f8ec63df12ec831e41663ebb665a2da"
182
+ "gitHead": "13b457ede804f31f5bc96f493efed6fc7e4d7473"
183
183
  }