@trpc/server 9.21.0 → 9.22.0

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 (85) hide show
  1. package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +3 -3
  2. package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +3 -3
  3. package/adapters/express/dist/trpc-server-adapters-express.esm.js +3 -3
  4. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +3 -3
  5. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +3 -3
  6. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +3 -3
  7. package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +3 -3
  8. package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +3 -3
  9. package/adapters/next/dist/trpc-server-adapters-next.esm.js +3 -3
  10. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +3 -3
  11. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +3 -3
  12. package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +3 -3
  13. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +3 -3
  14. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +3 -3
  15. package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +3 -3
  16. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +2 -2
  17. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +2 -2
  18. package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +2 -2
  19. package/dist/declarations/src/TRPCError.d.ts.map +1 -1
  20. package/dist/declarations/src/adapters/fastify/fastifyRequestHandler.d.ts +1 -1
  21. package/dist/declarations/src/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  22. package/dist/declarations/src/adapters/fastify/fastifyTRPCPlugin.d.ts +1 -1
  23. package/dist/declarations/src/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
  24. package/dist/declarations/src/adapters/next.d.ts.map +1 -1
  25. package/dist/declarations/src/adapters/node-http/nodeHTTPRequestHandler.d.ts +1 -1
  26. package/dist/declarations/src/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  27. package/dist/declarations/src/adapters/standalone.d.ts.map +1 -1
  28. package/dist/declarations/src/adapters/ws.d.ts.map +1 -1
  29. package/dist/declarations/src/deprecated/createHttpServer.d.ts +1 -1
  30. package/dist/declarations/src/deprecated/createHttpServer.d.ts.map +1 -1
  31. package/dist/declarations/src/deprecated/requestHandler.d.ts +1 -1
  32. package/dist/declarations/src/deprecated/requestHandler.d.ts.map +1 -1
  33. package/dist/declarations/src/http/internals/getHTTPStatusCode.d.ts +1 -1
  34. package/dist/declarations/src/http/internals/getHTTPStatusCode.d.ts.map +1 -1
  35. package/dist/declarations/src/http/internals/types.d.ts +1 -1
  36. package/dist/declarations/src/http/internals/types.d.ts.map +1 -1
  37. package/dist/declarations/src/http/resolveHTTPResponse.d.ts +2 -2
  38. package/dist/declarations/src/http/resolveHTTPResponse.d.ts.map +1 -1
  39. package/dist/declarations/src/internals/BaseHandlerOptions.d.ts +1 -1
  40. package/dist/declarations/src/internals/BaseHandlerOptions.d.ts.map +1 -1
  41. package/dist/declarations/src/internals/OnErrorFunction.d.ts +1 -1
  42. package/dist/declarations/src/internals/OnErrorFunction.d.ts.map +1 -1
  43. package/dist/declarations/src/internals/middlewares.d.ts +3 -2
  44. package/dist/declarations/src/internals/middlewares.d.ts.map +1 -1
  45. package/dist/declarations/src/internals/procedure.d.ts +16 -11
  46. package/dist/declarations/src/internals/procedure.d.ts.map +1 -1
  47. package/dist/declarations/src/router.d.ts +33 -29
  48. package/dist/declarations/src/router.d.ts.map +1 -1
  49. package/dist/{nodeHTTPRequestHandler-2cc444d8.cjs.dev.js → nodeHTTPRequestHandler-620da2b7.cjs.dev.js} +2 -2
  50. package/dist/{nodeHTTPRequestHandler-d00c1126.esm.js → nodeHTTPRequestHandler-87105aef.esm.js} +2 -2
  51. package/dist/{nodeHTTPRequestHandler-8ddacc19.cjs.prod.js → nodeHTTPRequestHandler-9cfa7523.cjs.prod.js} +2 -2
  52. package/dist/{resolveHTTPResponse-85f3f5df.esm.js → resolveHTTPResponse-12cc3012.esm.js} +1 -1
  53. package/dist/{resolveHTTPResponse-3867844c.cjs.dev.js → resolveHTTPResponse-780f5cab.cjs.dev.js} +1 -1
  54. package/dist/{resolveHTTPResponse-562c3d62.cjs.prod.js → resolveHTTPResponse-d1d2695d.cjs.prod.js} +1 -1
  55. package/dist/{subscription-a81120d6.esm.js → subscription-2ea469a3.esm.js} +1 -1
  56. package/dist/{subscription-9e007280.cjs.dev.js → subscription-7de48383.cjs.dev.js} +1 -1
  57. package/dist/{subscription-12fb50be.cjs.prod.js → subscription-f03bec71.cjs.prod.js} +1 -1
  58. package/dist/{transformTRPCResponse-8248515e.cjs.dev.js → transformTRPCResponse-1e125b28.cjs.prod.js} +38 -38
  59. package/dist/{transformTRPCResponse-f73dc4a2.esm.js → transformTRPCResponse-45c225c3.esm.js} +38 -38
  60. package/dist/{transformTRPCResponse-dcbf66c5.cjs.prod.js → transformTRPCResponse-c654ea92.cjs.dev.js} +38 -38
  61. package/dist/trpc-server.cjs.dev.js +12 -6
  62. package/dist/trpc-server.cjs.prod.js +12 -6
  63. package/dist/trpc-server.esm.js +14 -8
  64. package/package.json +2 -2
  65. package/src/TRPCError.ts +1 -1
  66. package/src/adapters/fastify/fastifyRequestHandler.ts +2 -2
  67. package/src/adapters/fastify/fastifyTRPCPlugin.ts +3 -3
  68. package/src/adapters/next.ts +1 -1
  69. package/src/adapters/node-http/internals/getPostBody.test.ts +2 -1
  70. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +5 -5
  71. package/src/adapters/standalone.ts +1 -0
  72. package/src/adapters/ws.ts +2 -2
  73. package/src/deprecated/createHttpServer.ts +2 -2
  74. package/src/deprecated/requestHandler.ts +2 -2
  75. package/src/http/internals/getHTTPStatusCode.ts +1 -1
  76. package/src/http/internals/types.ts +2 -2
  77. package/src/http/resolveHTTPResponse.ts +3 -3
  78. package/src/internals/BaseHandlerOptions.ts +1 -1
  79. package/src/internals/OnErrorFunction.ts +1 -1
  80. package/src/internals/middlewares.ts +3 -2
  81. package/src/internals/procedure.ts +60 -13
  82. package/src/router.ts +96 -32
  83. package/ws/dist/trpc-server-ws.cjs.dev.js +2 -2
  84. package/ws/dist/trpc-server-ws.cjs.prod.js +2 -2
  85. package/ws/dist/trpc-server-ws.esm.js +2 -2
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var resolveHTTPResponse = require('./resolveHTTPResponse-3867844c.cjs.dev.js');
6
- var subscription = require('./subscription-9e007280.cjs.dev.js');
7
- var transformTRPCResponse = require('./transformTRPCResponse-8248515e.cjs.dev.js');
5
+ var resolveHTTPResponse = require('./resolveHTTPResponse-780f5cab.cjs.dev.js');
6
+ var subscription = require('./subscription-7de48383.cjs.dev.js');
7
+ var transformTRPCResponse = require('./transformTRPCResponse-c654ea92.cjs.dev.js');
8
8
  var adapters_standalone_dist_trpcServerAdaptersStandalone = require('../adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js');
9
- var nodeHTTPRequestHandler = require('./nodeHTTPRequestHandler-2cc444d8.cjs.dev.js');
9
+ var nodeHTTPRequestHandler = require('./nodeHTTPRequestHandler-620da2b7.cjs.dev.js');
10
10
  var codes = require('./codes-33cef953.cjs.dev.js');
11
11
  require('events');
12
12
  require('http');
@@ -32,6 +32,7 @@ const createHttpHandler = adapters_standalone_dist_trpcServerAdaptersStandalone.
32
32
  /**
33
33
  * @deprecated use `nodeHTTPRequestHandler` from `@trpc/server/adapters/node-http`
34
34
  */
35
+
35
36
  const requestHandler = nodeHTTPRequestHandler.nodeHTTPRequestHandler;
36
37
  /**
37
38
  * @deprecated use `NodeHTTPCreateContextFn` from `@trpc/server/adapters/node-http`
@@ -104,12 +105,14 @@ class Procedure {
104
105
  this.parseInputFn = void 0;
105
106
  this.outputParser = void 0;
106
107
  this.parseOutputFn = void 0;
108
+ this.meta = void 0;
107
109
  this.middlewares = opts.middlewares;
108
110
  this.resolver = opts.resolver;
109
111
  this.inputParser = opts.inputParser;
110
112
  this.parseInputFn = getParseFn(this.inputParser);
111
113
  this.outputParser = opts.outputParser;
112
114
  this.parseOutputFn = getParseFn(this.outputParser);
115
+ this.meta = opts.meta;
113
116
  }
114
117
 
115
118
  async parseInput(rawInput) {
@@ -166,6 +169,7 @@ class Procedure {
166
169
  type: opts.type,
167
170
  path: opts.path,
168
171
  rawInput: opts.rawInput,
172
+ meta: this.meta,
169
173
  next: nextFns[index + 1]
170
174
  }));
171
175
 
@@ -208,7 +212,8 @@ class Procedure {
208
212
  middlewares: [...middlewares, ...this.middlewares],
209
213
  resolver: this.resolver,
210
214
  inputParser: this.inputParser,
211
- outputParser: this.outputParser
215
+ outputParser: this.outputParser,
216
+ meta: this.meta
212
217
  });
213
218
  return instance;
214
219
  }
@@ -230,7 +235,8 @@ function createProcedure(opts) {
230
235
  inputParser: inputParser,
231
236
  resolver: opts.resolve,
232
237
  middlewares: [],
233
- outputParser: outputParser
238
+ outputParser: outputParser,
239
+ meta: opts.meta
234
240
  });
235
241
  }
236
242
 
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var resolveHTTPResponse = require('./resolveHTTPResponse-562c3d62.cjs.prod.js');
6
- var subscription = require('./subscription-12fb50be.cjs.prod.js');
7
- var transformTRPCResponse = require('./transformTRPCResponse-dcbf66c5.cjs.prod.js');
5
+ var resolveHTTPResponse = require('./resolveHTTPResponse-d1d2695d.cjs.prod.js');
6
+ var subscription = require('./subscription-f03bec71.cjs.prod.js');
7
+ var transformTRPCResponse = require('./transformTRPCResponse-1e125b28.cjs.prod.js');
8
8
  var adapters_standalone_dist_trpcServerAdaptersStandalone = require('../adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js');
9
- var nodeHTTPRequestHandler = require('./nodeHTTPRequestHandler-8ddacc19.cjs.prod.js');
9
+ var nodeHTTPRequestHandler = require('./nodeHTTPRequestHandler-9cfa7523.cjs.prod.js');
10
10
  var codes = require('./codes-e0df67c4.cjs.prod.js');
11
11
  require('events');
12
12
  require('http');
@@ -32,6 +32,7 @@ const createHttpHandler = adapters_standalone_dist_trpcServerAdaptersStandalone.
32
32
  /**
33
33
  * @deprecated use `nodeHTTPRequestHandler` from `@trpc/server/adapters/node-http`
34
34
  */
35
+
35
36
  const requestHandler = nodeHTTPRequestHandler.nodeHTTPRequestHandler;
36
37
  /**
37
38
  * @deprecated use `NodeHTTPCreateContextFn` from `@trpc/server/adapters/node-http`
@@ -104,12 +105,14 @@ class Procedure {
104
105
  this.parseInputFn = void 0;
105
106
  this.outputParser = void 0;
106
107
  this.parseOutputFn = void 0;
108
+ this.meta = void 0;
107
109
  this.middlewares = opts.middlewares;
108
110
  this.resolver = opts.resolver;
109
111
  this.inputParser = opts.inputParser;
110
112
  this.parseInputFn = getParseFn(this.inputParser);
111
113
  this.outputParser = opts.outputParser;
112
114
  this.parseOutputFn = getParseFn(this.outputParser);
115
+ this.meta = opts.meta;
113
116
  }
114
117
 
115
118
  async parseInput(rawInput) {
@@ -166,6 +169,7 @@ class Procedure {
166
169
  type: opts.type,
167
170
  path: opts.path,
168
171
  rawInput: opts.rawInput,
172
+ meta: this.meta,
169
173
  next: nextFns[index + 1]
170
174
  }));
171
175
 
@@ -208,7 +212,8 @@ class Procedure {
208
212
  middlewares: [...middlewares, ...this.middlewares],
209
213
  resolver: this.resolver,
210
214
  inputParser: this.inputParser,
211
- outputParser: this.outputParser
215
+ outputParser: this.outputParser,
216
+ meta: this.meta
212
217
  });
213
218
  return instance;
214
219
  }
@@ -230,7 +235,8 @@ function createProcedure(opts) {
230
235
  inputParser: inputParser,
231
236
  resolver: opts.resolve,
232
237
  middlewares: [],
233
- outputParser: outputParser
238
+ outputParser: outputParser,
239
+ meta: opts.meta
234
240
  });
235
241
  }
236
242
 
@@ -1,10 +1,10 @@
1
- import { a as assertNotBrowser, g as getHTTPStatusCodeFromError } from './resolveHTTPResponse-85f3f5df.esm.js';
2
- export { a as assertNotBrowser, r as resolveHTTPResponse } from './resolveHTTPResponse-85f3f5df.esm.js';
3
- export { S as Subscription, s as subscriptionPullFactory } from './subscription-a81120d6.esm.js';
4
- import { T as TRPCError, g as getErrorFromUnknown } from './transformTRPCResponse-f73dc4a2.esm.js';
5
- export { T as TRPCError } from './transformTRPCResponse-f73dc4a2.esm.js';
1
+ import { a as assertNotBrowser, g as getHTTPStatusCodeFromError } from './resolveHTTPResponse-12cc3012.esm.js';
2
+ export { a as assertNotBrowser, r as resolveHTTPResponse } from './resolveHTTPResponse-12cc3012.esm.js';
3
+ export { S as Subscription, s as subscriptionPullFactory } from './subscription-2ea469a3.esm.js';
4
+ import { T as TRPCError, g as getErrorFromUnknown } from './transformTRPCResponse-45c225c3.esm.js';
5
+ export { T as TRPCError } from './transformTRPCResponse-45c225c3.esm.js';
6
6
  import { createHTTPServer, createHTTPHandler } from '../adapters/standalone/dist/trpc-server-adapters-standalone.esm.js';
7
- import { n as nodeHTTPRequestHandler } from './nodeHTTPRequestHandler-d00c1126.esm.js';
7
+ import { n as nodeHTTPRequestHandler } from './nodeHTTPRequestHandler-87105aef.esm.js';
8
8
  import { T as TRPC_ERROR_CODES_BY_KEY } from './codes-fe07bf82.esm.js';
9
9
  import 'events';
10
10
  import 'http';
@@ -30,6 +30,7 @@ const createHttpHandler = createHTTPHandler;
30
30
  /**
31
31
  * @deprecated use `nodeHTTPRequestHandler` from `@trpc/server/adapters/node-http`
32
32
  */
33
+
33
34
  const requestHandler = nodeHTTPRequestHandler;
34
35
  /**
35
36
  * @deprecated use `NodeHTTPCreateContextFn` from `@trpc/server/adapters/node-http`
@@ -102,12 +103,14 @@ class Procedure {
102
103
  this.parseInputFn = void 0;
103
104
  this.outputParser = void 0;
104
105
  this.parseOutputFn = void 0;
106
+ this.meta = void 0;
105
107
  this.middlewares = opts.middlewares;
106
108
  this.resolver = opts.resolver;
107
109
  this.inputParser = opts.inputParser;
108
110
  this.parseInputFn = getParseFn(this.inputParser);
109
111
  this.outputParser = opts.outputParser;
110
112
  this.parseOutputFn = getParseFn(this.outputParser);
113
+ this.meta = opts.meta;
111
114
  }
112
115
 
113
116
  async parseInput(rawInput) {
@@ -164,6 +167,7 @@ class Procedure {
164
167
  type: opts.type,
165
168
  path: opts.path,
166
169
  rawInput: opts.rawInput,
170
+ meta: this.meta,
167
171
  next: nextFns[index + 1]
168
172
  }));
169
173
 
@@ -206,7 +210,8 @@ class Procedure {
206
210
  middlewares: [...middlewares, ...this.middlewares],
207
211
  resolver: this.resolver,
208
212
  inputParser: this.inputParser,
209
- outputParser: this.outputParser
213
+ outputParser: this.outputParser,
214
+ meta: this.meta
210
215
  });
211
216
  return instance;
212
217
  }
@@ -228,7 +233,8 @@ function createProcedure(opts) {
228
233
  inputParser: inputParser,
229
234
  resolver: opts.resolve,
230
235
  middlewares: [],
231
- outputParser: outputParser
236
+ outputParser: outputParser,
237
+ meta: opts.meta
232
238
  });
233
239
  }
234
240
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/server",
3
- "version": "9.21.0",
3
+ "version": "9.22.0",
4
4
  "description": "tRPC Server",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -70,5 +70,5 @@
70
70
  "yup": "^0.32.8",
71
71
  "zod": "^3.0.0"
72
72
  },
73
- "gitHead": "bfcabb55010f3e6612308595a79f6be3637d38d8"
73
+ "gitHead": "471a69c2d6997b8d5dfa1887fd62b24ada31a4d3"
74
74
  }
package/src/TRPCError.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { TRPC_ERROR_CODE_KEY } from './rpc/codes';
2
1
  import { getMessageFromUnkownError } from './internals/errors';
2
+ import { TRPC_ERROR_CODE_KEY } from './rpc/codes';
3
3
 
4
4
  export class TRPCError extends Error {
5
5
  /**
@@ -1,3 +1,5 @@
1
+ import { FastifyReply, FastifyRequest } from 'fastify';
2
+ import { URLSearchParams } from 'url';
1
3
  import { assertNotBrowser } from '../../assertNotBrowser';
2
4
  import {
3
5
  HTTPBaseHandlerOptions,
@@ -6,8 +8,6 @@ import {
6
8
  import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
7
9
  import { AnyRouter, inferRouterContext } from '../../router';
8
10
  import { NodeHTTPCreateContextOption } from '../node-http';
9
- import { FastifyReply, FastifyRequest } from 'fastify';
10
- import { URLSearchParams } from 'url';
11
11
 
12
12
  assertNotBrowser();
13
13
 
@@ -1,10 +1,10 @@
1
1
  /// <reference types="fastify-websocket" />
2
2
  import { FastifyInstance, FastifyReply, FastifyRequest } from 'fastify';
3
- import { fastifyRequestHandler } from './fastifyRequestHandler';
4
- import { NodeHTTPCreateContextFnOptions } from '../node-http';
5
- import { applyWSSHandler, WSSHandlerOptions } from '../ws';
6
3
  import { FastifyHandlerOptions } from '.';
7
4
  import { AnyRouter } from '../..';
5
+ import { NodeHTTPCreateContextFnOptions } from '../node-http';
6
+ import { WSSHandlerOptions, applyWSSHandler } from '../ws';
7
+ import { fastifyRequestHandler } from './fastifyRequestHandler';
8
8
 
9
9
  export interface FastifyTRPCPluginOptions<TRouter extends AnyRouter> {
10
10
  prefix?: string;
@@ -5,9 +5,9 @@ import type {
5
5
  NextApiRequest,
6
6
  NextApiResponse,
7
7
  } from 'next/types';
8
+ import { TRPCError } from '../TRPCError';
8
9
  import { AnyRouter } from '../router';
9
10
  import { TRPCErrorResponse } from '../rpc';
10
- import { TRPCError } from '../TRPCError';
11
11
  import { nodeHTTPRequestHandler } from './node-http';
12
12
  import {
13
13
  NodeHTTPCreateContextFnOptions,
@@ -1,5 +1,6 @@
1
- import { getPostBody } from './getPostBody';
2
1
  import { EventEmitter } from 'events';
2
+ import { getPostBody } from './getPostBody';
3
+
3
4
  test('has body', async () => {
4
5
  const body = {};
5
6
  const resolvedBody = await getPostBody({ req: { body } } as any);
@@ -1,15 +1,15 @@
1
1
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
2
  import { URLSearchParams } from 'url';
3
3
  import { assertNotBrowser } from '../../assertNotBrowser';
4
+ import { HTTPRequest } from '../../http/internals/types';
5
+ import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
6
+ import { AnyRouter, inferRouterContext } from '../../router';
7
+ import { getPostBody } from './internals/getPostBody';
4
8
  import {
9
+ NodeHTTPHandlerOptions,
5
10
  NodeHTTPRequest,
6
11
  NodeHTTPResponse,
7
- NodeHTTPHandlerOptions,
8
12
  } from './types';
9
- import { AnyRouter, inferRouterContext } from '../../router';
10
- import { getPostBody } from './internals/getPostBody';
11
- import { HTTPRequest } from '../../http/internals/types';
12
- import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
13
13
 
14
14
  assertNotBrowser();
15
15
 
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
+
2
3
  /* eslint-disable @typescript-eslint/no-explicit-any */
3
4
  import http from 'http';
4
5
  import url from 'url';
@@ -1,10 +1,11 @@
1
1
  import http from 'http';
2
2
  import ws from 'ws';
3
+ import { TRPCError } from '../TRPCError';
3
4
  import { BaseHandlerOptions } from '../internals/BaseHandlerOptions';
4
5
  import { callProcedure } from '../internals/callProcedure';
5
6
  import { getErrorFromUnknown } from '../internals/errors';
6
7
  import { transformTRPCResponse } from '../internals/transformTRPCResponse';
7
- import { AnyRouter, inferRouterContext, ProcedureType } from '../router';
8
+ import { AnyRouter, ProcedureType, inferRouterContext } from '../router';
8
9
  import {
9
10
  TRPCErrorResponse,
10
11
  TRPCReconnectNotification,
@@ -13,7 +14,6 @@ import {
13
14
  } from '../rpc';
14
15
  import { Subscription } from '../subscription';
15
16
  import { CombinedDataTransformer } from '../transformer';
16
- import { TRPCError } from '../TRPCError';
17
17
  import { NodeHTTPCreateContextOption } from './node-http';
18
18
 
19
19
  /* istanbul ignore next */
@@ -1,9 +1,9 @@
1
1
  // this has been moved to separate package
2
2
  import {
3
- createHTTPHandler,
3
+ CreateHTTPContextOptions,
4
4
  CreateHTTPHandlerOptions,
5
+ createHTTPHandler,
5
6
  createHTTPServer,
6
- CreateHTTPContextOptions,
7
7
  } from '../adapters/standalone';
8
8
  import { AnyRouter } from '../router';
9
9
 
@@ -1,9 +1,9 @@
1
+ import type { AnyRouter } from '../';
1
2
  import {
2
- nodeHTTPRequestHandler as requestHandlerInner,
3
3
  NodeHTTPCreateContextFn,
4
4
  NodeHTTPCreateContextFnOptions,
5
+ nodeHTTPRequestHandler as requestHandlerInner,
5
6
  } from '../adapters/node-http';
6
- import type { AnyRouter } from '../';
7
7
 
8
8
  /**
9
9
  * @deprecated use `nodeHTTPRequestHandler` from `@trpc/server/adapters/node-http`
@@ -1,6 +1,6 @@
1
- import { TRPCResponse, TRPC_ERROR_CODES_BY_KEY } from '../../rpc';
2
1
  import { TRPCError } from '../../TRPCError';
3
2
  import { invert } from '../../internals/invert';
3
+ import { TRPCResponse, TRPC_ERROR_CODES_BY_KEY } from '../../rpc';
4
4
 
5
5
  export const TRPC_ERROR_CODES_BY_NUMBER = invert(TRPC_ERROR_CODES_BY_KEY);
6
6
  type ValueOf<T> = T[keyof T];
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  AnyRouter,
3
3
  Dict,
4
- inferRouterContext,
5
- inferRouterError,
6
4
  ProcedureType,
7
5
  ResponseMeta,
8
6
  TRPCError,
7
+ inferRouterContext,
8
+ inferRouterError,
9
9
  } from '@trpc/server';
10
10
  import { URLSearchParams } from 'url';
11
11
  import { BaseHandlerOptions } from '../../internals/BaseHandlerOptions';
@@ -1,22 +1,22 @@
1
1
  /* eslint-disable @typescript-eslint/no-non-null-assertion */
2
2
  import { Maybe } from '@trpc/server';
3
+ import { TRPCError } from '../TRPCError';
3
4
  import { callProcedure } from '../internals/callProcedure';
4
5
  import { getErrorFromUnknown } from '../internals/errors';
5
6
  import { transformTRPCResponse } from '../internals/transformTRPCResponse';
6
7
  import {
7
8
  AnyRouter,
9
+ ProcedureType,
8
10
  inferRouterContext,
9
11
  inferRouterError,
10
- ProcedureType,
11
12
  } from '../router';
12
13
  import { TRPCErrorResponse, TRPCResponse, TRPCResultResponse } from '../rpc';
13
- import { TRPCError } from '../TRPCError';
14
14
  import { getHTTPStatusCode } from './internals/getHTTPStatusCode';
15
15
  import {
16
+ HTTPBaseHandlerOptions,
16
17
  HTTPHeaders,
17
18
  HTTPRequest,
18
19
  HTTPResponse,
19
- HTTPBaseHandlerOptions,
20
20
  } from './internals/types';
21
21
 
22
22
  const HTTP_METHOD_PROCEDURE_TYPE_MAP: Record<
@@ -1,5 +1,5 @@
1
- import { OnErrorFunction } from './OnErrorFunction';
2
1
  import { AnyRouter } from '../router';
2
+ import { OnErrorFunction } from './OnErrorFunction';
3
3
 
4
4
  /**
5
5
  * Base interface for any response handler
@@ -1,5 +1,5 @@
1
- import { AnyRouter, inferRouterContext, ProcedureType } from '../router';
2
1
  import { TRPCError } from '../TRPCError';
2
+ import { AnyRouter, ProcedureType, inferRouterContext } from '../router';
3
3
 
4
4
  export type OnErrorFunction<TRouter extends AnyRouter, TRequest> = (opts: {
5
5
  error: TRPCError;
@@ -1,5 +1,5 @@
1
- import { ProcedureType } from '../router';
2
1
  import { TRPCError } from '../TRPCError';
2
+ import { ProcedureType } from '../router';
3
3
 
4
4
  export const middlewareMarker = Symbol('middlewareMarker');
5
5
  interface MiddlewareResultBase<TContext> {
@@ -27,11 +27,12 @@ export type MiddlewareResult<TContext> =
27
27
  | MiddlewareOKResult<TContext>
28
28
  | MiddlewareErrorResult<TContext>;
29
29
 
30
- export type MiddlewareFunction<TInputContext, TContext> = (opts: {
30
+ export type MiddlewareFunction<TInputContext, TContext, TMeta> = (opts: {
31
31
  ctx: TInputContext;
32
32
  type: ProcedureType;
33
33
  path: string;
34
34
  rawInput: unknown;
35
+ meta?: TMeta;
35
36
  next: {
36
37
  (): Promise<MiddlewareResult<TInputContext>>;
37
38
  <T>(opts: { ctx: T }): Promise<MiddlewareResult<T>>;
@@ -44,11 +44,12 @@ export type ProcedureResolver<TContext, TInput, TOutput> = (opts: {
44
44
  type: ProcedureType;
45
45
  }) => Promise<TOutput> | TOutput;
46
46
 
47
- interface ProcedureOptions<TContext, TInput, TOutput, TParsedOutput> {
48
- middlewares: Array<MiddlewareFunction<any, any>>;
47
+ interface ProcedureOptions<TContext, TMeta, TInput, TOutput, TParsedOutput> {
48
+ middlewares: Array<MiddlewareFunction<any, any, any>>;
49
49
  resolver: ProcedureResolver<TContext, TInput, TOutput>;
50
50
  inputParser: ProcedureParser<TInput>;
51
51
  outputParser: ProcedureParser<TParsedOutput>;
52
+ meta: TMeta;
52
53
  }
53
54
 
54
55
  /**
@@ -100,21 +101,29 @@ function getParseFn<T>(procedureParser: ProcedureParser<T>): ParseFn<T> {
100
101
  export class Procedure<
101
102
  TInputContext,
102
103
  TContext,
104
+ TMeta,
103
105
  TInput,
104
106
  TParsedInput,
105
107
  TOutput,
106
108
  TParsedOutput,
107
109
  TFinalOutput = unknown extends TParsedOutput ? TOutput : TParsedOutput,
108
110
  > {
109
- private middlewares: Readonly<Array<MiddlewareFunction<any, any>>>;
111
+ private middlewares: Readonly<Array<MiddlewareFunction<any, any, any>>>;
110
112
  private resolver: ProcedureResolver<TContext, TParsedInput, TOutput>;
111
113
  private readonly inputParser: ProcedureParser<TParsedInput>;
112
114
  private parseInputFn: ParseFn<TParsedInput>;
113
115
  private readonly outputParser: ProcedureParser<TFinalOutput>;
114
116
  private parseOutputFn: ParseFn<TFinalOutput>;
117
+ public readonly meta: TMeta;
115
118
 
116
119
  constructor(
117
- opts: ProcedureOptions<TContext, TParsedInput, TOutput, TFinalOutput>,
120
+ opts: ProcedureOptions<
121
+ TContext,
122
+ TMeta,
123
+ TParsedInput,
124
+ TOutput,
125
+ TFinalOutput
126
+ >,
118
127
  ) {
119
128
  this.middlewares = opts.middlewares;
120
129
  this.resolver = opts.resolver;
@@ -122,6 +131,7 @@ export class Procedure<
122
131
  this.parseInputFn = getParseFn(this.inputParser);
123
132
  this.outputParser = opts.outputParser;
124
133
  this.parseOutputFn = getParseFn(this.outputParser);
134
+ this.meta = opts.meta;
125
135
  }
126
136
 
127
137
  private async parseInput(rawInput: unknown): Promise<TParsedInput> {
@@ -158,7 +168,11 @@ export class Procedure<
158
168
  const middlewaresWithResolver = this.middlewares.concat([
159
169
  async ({ ctx }: { ctx: TContext }) => {
160
170
  const input = await this.parseInput(opts.rawInput);
161
- const rawOutput = await this.resolver({ ...opts, ctx, input });
171
+ const rawOutput = await this.resolver({
172
+ ...opts,
173
+ ctx,
174
+ input,
175
+ });
162
176
  const data = await this.parseOutput(rawOutput);
163
177
  return {
164
178
  marker: middlewareMarker,
@@ -178,6 +192,7 @@ export class Procedure<
178
192
  type: opts.type,
179
193
  path: opts.path,
180
194
  rawInput: opts.rawInput,
195
+ meta: this.meta,
181
196
  next: nextFns[index + 1],
182
197
  }),
183
198
  );
@@ -213,14 +228,21 @@ export class Procedure<
213
228
  * @param middlewares
214
229
  */
215
230
  public inheritMiddlewares(
216
- middlewares: MiddlewareFunction<TInputContext, TContext>[],
231
+ middlewares: MiddlewareFunction<TInputContext, TContext, TMeta>[],
217
232
  ): this {
218
233
  const Constructor: {
219
234
  new (
220
- opts: ProcedureOptions<TContext, TParsedInput, TOutput, TFinalOutput>,
235
+ opts: ProcedureOptions<
236
+ TContext,
237
+ TMeta,
238
+ TParsedInput,
239
+ TOutput,
240
+ TFinalOutput
241
+ >,
221
242
  ): Procedure<
222
243
  TInputContext,
223
244
  TContext,
245
+ TMeta,
224
246
  TInput,
225
247
  TParsedInput,
226
248
  TOutput,
@@ -233,20 +255,23 @@ export class Procedure<
233
255
  resolver: this.resolver,
234
256
  inputParser: this.inputParser,
235
257
  outputParser: this.outputParser,
258
+ meta: this.meta,
236
259
  });
237
260
 
238
261
  return instance as any;
239
262
  }
240
263
  }
241
264
 
242
- export type CreateProcedureWithInput<TContext, TInput, TOutput> = {
265
+ export type CreateProcedureWithInput<TContext, TMeta, TInput, TOutput> = {
243
266
  input: ProcedureParser<TInput>;
244
267
  output?: ProcedureParser<TOutput>;
268
+ meta?: TMeta;
245
269
  resolve: ProcedureResolver<TContext, TInput, TOutput>;
246
270
  };
247
271
 
248
272
  export type CreateProcedureWithInputOutputParser<
249
273
  TContext,
274
+ TMeta,
250
275
  TInput,
251
276
  TParsedInput,
252
277
  TOutput,
@@ -254,18 +279,26 @@ export type CreateProcedureWithInputOutputParser<
254
279
  > = {
255
280
  input: ProcedureParserWithInputOutput<TInput, TParsedInput>;
256
281
  output?: ProcedureParserWithInputOutput<TOutput, TParsedOutput>;
282
+ meta?: TMeta;
257
283
  resolve: ProcedureResolver<TContext, TParsedInput, TOutput>;
258
284
  };
259
285
 
260
- export type CreateProcedureWithoutInput<TContext, TOutput, TParsedOutput> = {
286
+ export type CreateProcedureWithoutInput<
287
+ TContext,
288
+ TMeta,
289
+ TOutput,
290
+ TParsedOutput,
291
+ > = {
261
292
  output?:
262
293
  | ProcedureParserWithInputOutput<TOutput, TParsedOutput>
263
294
  | ProcedureParser<TOutput>;
295
+ meta?: TMeta;
264
296
  resolve: ProcedureResolver<TContext, undefined, TOutput>;
265
297
  };
266
298
 
267
299
  export type CreateProcedureOptions<
268
300
  TContext,
301
+ TMeta = undefined,
269
302
  TInput = undefined,
270
303
  TParsedInput = undefined,
271
304
  TOutput = undefined,
@@ -273,16 +306,18 @@ export type CreateProcedureOptions<
273
306
  > =
274
307
  | CreateProcedureWithInputOutputParser<
275
308
  TContext,
309
+ TMeta,
276
310
  TInput,
277
311
  TParsedInput,
278
312
  TOutput,
279
313
  TParsedOutput
280
314
  >
281
- | CreateProcedureWithInput<TContext, TInput, TOutput>
282
- | CreateProcedureWithoutInput<TContext, TOutput, TParsedOutput>;
315
+ | CreateProcedureWithInput<TContext, TMeta, TInput, TOutput>
316
+ | CreateProcedureWithoutInput<TContext, TMeta, TOutput, TParsedOutput>;
283
317
 
284
318
  export function createProcedure<
285
319
  TContext,
320
+ TMeta,
286
321
  TInput,
287
322
  TParsedInput,
288
323
  TOutput,
@@ -290,12 +325,21 @@ export function createProcedure<
290
325
  >(
291
326
  opts: CreateProcedureOptions<
292
327
  TContext,
328
+ TMeta,
293
329
  TInput,
294
330
  TParsedInput,
295
331
  TOutput,
296
332
  TParsedOutput
297
333
  >,
298
- ): Procedure<unknown, TContext, TInput, TParsedInput, TOutput, TParsedOutput> {
334
+ ): Procedure<
335
+ unknown,
336
+ TContext,
337
+ TMeta,
338
+ TInput,
339
+ TParsedInput,
340
+ TOutput,
341
+ TParsedOutput
342
+ > {
299
343
  const inputParser =
300
344
  'input' in opts
301
345
  ? opts.input
@@ -319,14 +363,16 @@ export function createProcedure<
319
363
  resolver: opts.resolve as any,
320
364
  middlewares: [],
321
365
  outputParser: outputParser as any,
366
+ meta: opts.meta as any,
322
367
  });
323
368
  }
324
369
 
325
370
  export type inferProcedureFromOptions<
326
371
  TInputContext,
327
- TOptions extends CreateProcedureOptions<any, any, any, any, any>,
372
+ TOptions extends CreateProcedureOptions<any, any, any, any, any, any>,
328
373
  > = TOptions extends CreateProcedureOptions<
329
374
  infer TContext,
375
+ infer TMeta,
330
376
  infer TInput,
331
377
  infer TParsedInput,
332
378
  infer TOutput,
@@ -335,6 +381,7 @@ export type inferProcedureFromOptions<
335
381
  ? Procedure<
336
382
  TInputContext,
337
383
  TContext,
384
+ TMeta,
338
385
  unknown extends TInput ? undefined : TInput,
339
386
  unknown extends TParsedInput ? undefined : TParsedInput,
340
387
  TOutput,