@trpc/server 10.0.0-alpha.2 → 10.0.0-alpha.20

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 (224) hide show
  1. package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +5 -4
  2. package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +5 -4
  3. package/adapters/express/dist/trpc-server-adapters-express.esm.js +5 -4
  4. package/adapters/express/index.d.ts +1 -0
  5. package/adapters/express/index.js +1 -0
  6. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.d.ts +1 -0
  7. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +109 -0
  8. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.js +7 -0
  9. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +109 -0
  10. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +104 -0
  11. package/adapters/fastify/index.d.ts +1 -0
  12. package/adapters/fastify/index.js +1 -0
  13. package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +2 -1
  14. package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +2 -1
  15. package/adapters/next/dist/trpc-server-adapters-next.esm.js +2 -1
  16. package/adapters/next/index.d.ts +1 -0
  17. package/adapters/next/index.js +1 -0
  18. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +2 -1
  19. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +2 -1
  20. package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +2 -1
  21. package/adapters/node-http/index.d.ts +1 -0
  22. package/adapters/node-http/index.js +1 -0
  23. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +3 -2
  24. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +3 -2
  25. package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +3 -2
  26. package/adapters/standalone/index.d.ts +1 -0
  27. package/adapters/standalone/index.js +1 -0
  28. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +5 -4
  29. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +5 -4
  30. package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +5 -4
  31. package/adapters/ws/index.d.ts +1 -0
  32. package/adapters/ws/index.js +1 -0
  33. package/dist/{declarations/src/TRPCError.d.ts → TRPCError.d.ts} +10 -18
  34. package/dist/TRPCError.d.ts.map +1 -0
  35. package/dist/{declarations/src/adapters → adapters}/express.d.ts +5 -5
  36. package/dist/adapters/express.d.ts.map +1 -0
  37. package/dist/adapters/express.js +23 -0
  38. package/dist/adapters/express.mjs +19 -0
  39. package/dist/adapters/express.ts.js +1 -0
  40. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +13 -0
  41. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -0
  42. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +12 -0
  43. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -0
  44. package/dist/adapters/fastify/index.d.ts +3 -0
  45. package/dist/adapters/fastify/index.d.ts.map +1 -0
  46. package/dist/adapters/fastify/index.js +109 -0
  47. package/dist/adapters/fastify/index.mjs +104 -0
  48. package/dist/adapters/fastify/index.ts.js +1 -0
  49. package/dist/{declarations/src/adapters → adapters}/next.d.ts +5 -5
  50. package/dist/adapters/next.d.ts.map +1 -0
  51. package/dist/adapters/next.js +56 -0
  52. package/dist/adapters/next.mjs +52 -0
  53. package/dist/adapters/next.ts.js +1 -0
  54. package/dist/{declarations/src/adapters → adapters}/node-http/index.d.ts +2 -2
  55. package/dist/adapters/node-http/index.d.ts.map +1 -0
  56. package/dist/adapters/node-http/index.js +13 -0
  57. package/dist/adapters/node-http/index.mjs +5 -0
  58. package/dist/adapters/node-http/index.ts.js +1 -0
  59. package/dist/{declarations/src/adapters → adapters}/node-http/internals/getPostBody.d.ts +12 -12
  60. package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -0
  61. package/dist/{declarations/src/adapters → adapters}/node-http/nodeHTTPRequestHandler.d.ts +9 -9
  62. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -0
  63. package/dist/{declarations/src/adapters → adapters}/node-http/types.d.ts +32 -32
  64. package/dist/adapters/node-http/types.d.ts.map +1 -0
  65. package/dist/{declarations/src/adapters → adapters}/standalone.d.ts +13 -13
  66. package/dist/adapters/standalone.d.ts.map +1 -0
  67. package/dist/adapters/standalone.js +46 -0
  68. package/dist/adapters/standalone.mjs +36 -0
  69. package/dist/adapters/standalone.ts.js +1 -0
  70. package/dist/{declarations/src/adapters → adapters}/ws.d.ts +16 -16
  71. package/dist/adapters/ws.d.ts.map +1 -0
  72. package/dist/adapters/ws.js +347 -0
  73. package/dist/adapters/ws.mjs +343 -0
  74. package/dist/adapters/ws.ts.js +1 -0
  75. package/dist/{declarations/src/assertNotBrowser.d.ts → assertNotBrowser.d.ts} +1 -1
  76. package/dist/assertNotBrowser.d.ts.map +1 -0
  77. package/dist/{codes-fe07bf82.esm.js → codes-7a3d4f65.mjs} +0 -0
  78. package/dist/{codes-33cef953.cjs.dev.js → codes-7f46544e.js} +0 -0
  79. package/dist/{declarations/src/http → http}/ResponseMeta.d.ts +4 -4
  80. package/dist/http/ResponseMeta.d.ts.map +1 -0
  81. package/dist/{declarations/src/http → http}/index.d.ts +2 -2
  82. package/dist/http/index.d.ts.map +1 -0
  83. package/dist/{declarations/src/http → http}/internals/getHTTPStatusCode.d.ts +20 -20
  84. package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -0
  85. package/dist/{declarations/src/http → http}/internals/types.d.ts +39 -39
  86. package/dist/http/internals/types.d.ts.map +1 -0
  87. package/dist/{declarations/src/http → http}/resolveHTTPResponse.d.ts +12 -12
  88. package/dist/http/resolveHTTPResponse.d.ts.map +1 -0
  89. package/dist/{declarations/src/index.d.ts → index.d.ts} +7 -9
  90. package/dist/index.d.ts.map +1 -0
  91. package/dist/{trpc-server.cjs.dev.js → index.js} +45 -62
  92. package/dist/{trpc-server.esm.js → index.mjs} +41 -54
  93. package/dist/index.ts.js +1 -0
  94. package/dist/{declarations/src/internals → internals}/BaseHandlerOptions.d.ts +12 -12
  95. package/dist/internals/BaseHandlerOptions.d.ts.map +1 -0
  96. package/dist/{declarations/src/internals → internals}/OnErrorFunction.d.ts +10 -10
  97. package/dist/internals/OnErrorFunction.d.ts.map +1 -0
  98. package/dist/{declarations/src/internals → internals}/callProcedure.d.ts +9 -9
  99. package/dist/internals/callProcedure.d.ts.map +1 -0
  100. package/dist/{declarations/src/internals → internals}/errors.d.ts +3 -3
  101. package/dist/internals/errors.d.ts.map +1 -0
  102. package/dist/{declarations/src/internals → internals}/invert.d.ts +8 -8
  103. package/dist/internals/invert.d.ts.map +1 -0
  104. package/dist/{declarations/src/internals → internals}/middlewares.d.ts +33 -33
  105. package/dist/internals/middlewares.d.ts.map +1 -0
  106. package/dist/internals/procedure.d.ts +81 -0
  107. package/dist/internals/procedure.d.ts.map +1 -0
  108. package/dist/{declarations/src/internals → internals}/transformTRPCResponse.d.ts +6 -6
  109. package/dist/internals/transformTRPCResponse.d.ts.map +1 -0
  110. package/dist/{declarations/src/internals → internals}/wrapCallSafe.d.ts +15 -15
  111. package/dist/internals/wrapCallSafe.d.ts.map +1 -0
  112. package/dist/nodeHTTPRequestHandler-5fccb3bb.mjs +106 -0
  113. package/dist/nodeHTTPRequestHandler-7d71ac09.js +108 -0
  114. package/dist/{nodeHTTPRequestHandler-2e6cc2d7.esm.js → resolveHTTPResponse-3292a84a.mjs} +3 -105
  115. package/dist/{nodeHTTPRequestHandler-b7ff366e.cjs.dev.js → resolveHTTPResponse-c3777a47.js} +2 -105
  116. package/dist/{declarations/src/router.d.ts → router.d.ts} +168 -175
  117. package/dist/router.d.ts.map +1 -0
  118. package/dist/{declarations/src/rpc → rpc}/codes.d.ts +46 -46
  119. package/dist/rpc/codes.d.ts.map +1 -0
  120. package/dist/{declarations/src/rpc → rpc}/envelopes.d.ts +71 -71
  121. package/dist/rpc/envelopes.d.ts.map +1 -0
  122. package/dist/{declarations/src/rpc → rpc}/index.d.ts +2 -2
  123. package/dist/rpc/index.d.ts.map +1 -0
  124. package/dist/rpc/index.js +10 -0
  125. package/dist/rpc/index.mjs +1 -0
  126. package/dist/rpc/index.ts.js +1 -0
  127. package/dist/{subscription-fbda2888.esm.js → subscription-0d8a48ec.mjs} +2 -2
  128. package/dist/{subscription-c2e0bfbc.cjs.prod.js → subscription-41611bc2.js} +2 -2
  129. package/dist/{declarations/src/subscription.d.ts → subscription.d.ts} +57 -57
  130. package/dist/subscription.d.ts.map +1 -0
  131. package/dist/{transformTRPCResponse-8248515e.cjs.dev.js → transformTRPCResponse-43a869de.js} +41 -45
  132. package/dist/{transformTRPCResponse-f73dc4a2.esm.js → transformTRPCResponse-ff424ff4.mjs} +41 -45
  133. package/dist/{declarations/src/transformer.d.ts → transformer.d.ts} +29 -29
  134. package/dist/transformer.d.ts.map +1 -0
  135. package/dist/{declarations/src/types.d.ts → types.d.ts} +32 -40
  136. package/dist/types.d.ts.map +1 -0
  137. package/package.json +55 -20
  138. package/rpc/index.d.ts +1 -0
  139. package/rpc/index.js +1 -0
  140. package/src/TRPCError.ts +3 -11
  141. package/src/adapters/express.ts +3 -3
  142. package/src/adapters/fastify/fastifyRequestHandler.ts +78 -0
  143. package/src/adapters/fastify/fastifyTRPCPlugin.ts +56 -0
  144. package/src/adapters/fastify/index.ts +2 -0
  145. package/src/adapters/next.ts +6 -2
  146. package/src/adapters/node-http/internals/getPostBody.test.ts +2 -1
  147. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +5 -5
  148. package/src/adapters/standalone.ts +2 -1
  149. package/src/adapters/ws.ts +8 -5
  150. package/src/http/internals/getHTTPStatusCode.ts +1 -1
  151. package/src/http/internals/types.ts +2 -2
  152. package/src/http/resolveHTTPResponse.ts +3 -3
  153. package/src/index.ts +1 -5
  154. package/src/internals/BaseHandlerOptions.ts +1 -1
  155. package/src/internals/OnErrorFunction.ts +1 -1
  156. package/src/internals/middlewares.ts +1 -1
  157. package/src/internals/procedure.ts +123 -63
  158. package/src/router.ts +93 -63
  159. package/src/subscription.ts +1 -1
  160. package/src/types.ts +0 -9
  161. package/ws/dist/trpc-server-ws.cjs.dev.js +1 -1
  162. package/ws/dist/trpc-server-ws.cjs.prod.js +1 -1
  163. package/ws/dist/trpc-server-ws.esm.js +1 -1
  164. package/ws/index.d.ts +1 -0
  165. package/ws/index.js +1 -0
  166. package/adapters/express/package.json +0 -4
  167. package/adapters/next/package.json +0 -4
  168. package/adapters/node-http/package.json +0 -4
  169. package/adapters/standalone/package.json +0 -4
  170. package/adapters/ws/package.json +0 -4
  171. package/dist/codes-e0df67c4.cjs.prod.js +0 -60
  172. package/dist/declarations/src/TRPCError.d.ts.map +0 -1
  173. package/dist/declarations/src/adapters/express.d.ts.map +0 -1
  174. package/dist/declarations/src/adapters/next.d.ts.map +0 -1
  175. package/dist/declarations/src/adapters/node-http/index.d.ts.map +0 -1
  176. package/dist/declarations/src/adapters/node-http/internals/getPostBody.d.ts.map +0 -1
  177. package/dist/declarations/src/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +0 -1
  178. package/dist/declarations/src/adapters/node-http/types.d.ts.map +0 -1
  179. package/dist/declarations/src/adapters/standalone.d.ts.map +0 -1
  180. package/dist/declarations/src/adapters/ws.d.ts.map +0 -1
  181. package/dist/declarations/src/assertNotBrowser.d.ts.map +0 -1
  182. package/dist/declarations/src/deprecated/LegacyRouter.d.ts +0 -3
  183. package/dist/declarations/src/deprecated/LegacyRouter.d.ts.map +0 -1
  184. package/dist/declarations/src/deprecated/createHttpServer.d.ts +0 -19
  185. package/dist/declarations/src/deprecated/createHttpServer.d.ts.map +0 -1
  186. package/dist/declarations/src/deprecated/requestHandler.d.ts +0 -15
  187. package/dist/declarations/src/deprecated/requestHandler.d.ts.map +0 -1
  188. package/dist/declarations/src/http/ResponseMeta.d.ts.map +0 -1
  189. package/dist/declarations/src/http/index.d.ts.map +0 -1
  190. package/dist/declarations/src/http/internals/getHTTPStatusCode.d.ts.map +0 -1
  191. package/dist/declarations/src/http/internals/types.d.ts.map +0 -1
  192. package/dist/declarations/src/http/resolveHTTPResponse.d.ts.map +0 -1
  193. package/dist/declarations/src/index.d.ts.map +0 -1
  194. package/dist/declarations/src/internals/BaseHandlerOptions.d.ts.map +0 -1
  195. package/dist/declarations/src/internals/OnErrorFunction.d.ts.map +0 -1
  196. package/dist/declarations/src/internals/callProcedure.d.ts.map +0 -1
  197. package/dist/declarations/src/internals/errors.d.ts.map +0 -1
  198. package/dist/declarations/src/internals/invert.d.ts.map +0 -1
  199. package/dist/declarations/src/internals/middlewares.d.ts.map +0 -1
  200. package/dist/declarations/src/internals/procedure.d.ts +0 -74
  201. package/dist/declarations/src/internals/procedure.d.ts.map +0 -1
  202. package/dist/declarations/src/internals/transformTRPCResponse.d.ts.map +0 -1
  203. package/dist/declarations/src/internals/wrapCallSafe.d.ts.map +0 -1
  204. package/dist/declarations/src/router.d.ts.map +0 -1
  205. package/dist/declarations/src/rpc/codes.d.ts.map +0 -1
  206. package/dist/declarations/src/rpc/envelopes.d.ts.map +0 -1
  207. package/dist/declarations/src/rpc/index.d.ts.map +0 -1
  208. package/dist/declarations/src/subscription.d.ts.map +0 -1
  209. package/dist/declarations/src/transformer.d.ts.map +0 -1
  210. package/dist/declarations/src/types.d.ts.map +0 -1
  211. package/dist/declarations/src/ws/index.d.ts +0 -7
  212. package/dist/declarations/src/ws/index.d.ts.map +0 -1
  213. package/dist/nodeHTTPRequestHandler-7325b53f.cjs.prod.js +0 -399
  214. package/dist/subscription-b8831081.cjs.dev.js +0 -136
  215. package/dist/transformTRPCResponse-dcbf66c5.cjs.prod.js +0 -114
  216. package/dist/trpc-server.cjs.d.ts +0 -1
  217. package/dist/trpc-server.cjs.js +0 -7
  218. package/dist/trpc-server.cjs.prod.js +0 -528
  219. package/rpc/package.json +0 -4
  220. package/src/deprecated/LegacyRouter.ts +0 -3
  221. package/src/deprecated/createHttpServer.ts +0 -29
  222. package/src/deprecated/requestHandler.ts +0 -26
  223. package/src/ws/index.ts +0 -8
  224. package/ws/package.json +0 -4
@@ -2,39 +2,13 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var nodeHTTPRequestHandler = require('./nodeHTTPRequestHandler-b7ff366e.cjs.dev.js');
6
- var subscription = require('./subscription-b8831081.cjs.dev.js');
7
- var transformTRPCResponse = require('./transformTRPCResponse-8248515e.cjs.dev.js');
8
- var adapters_standalone_dist_trpcServerAdaptersStandalone = require('../adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js');
9
- var codes = require('./codes-33cef953.cjs.dev.js');
10
- require('url');
5
+ var resolveHTTPResponse = require('./resolveHTTPResponse-c3777a47.js');
6
+ var subscription = require('./subscription-41611bc2.js');
7
+ var transformTRPCResponse = require('./transformTRPCResponse-43a869de.js');
8
+ var codes = require('./codes-7f46544e.js');
11
9
  require('events');
12
- require('http');
13
10
 
14
- nodeHTTPRequestHandler.assertNotBrowser();
15
-
16
- // this has been moved to separate package
17
-
18
- /**
19
- * @deprecated use `createHTTPServer` from `@trpc/server/adapters/standalone`
20
- */
21
- const createHttpServer = adapters_standalone_dist_trpcServerAdaptersStandalone.createHTTPServer;
22
- /**
23
- * @deprecated use `createHTTPHandler` from `@trpc/server/adapters/standalone`
24
- */
25
-
26
- const createHttpHandler = adapters_standalone_dist_trpcServerAdaptersStandalone.createHTTPHandler;
27
- /**
28
- * @deprecated use `CreateHTTPHandlerOptions` from `@trpc/server/adapters/standalone`
29
- */
30
-
31
- /**
32
- * @deprecated use `nodeHTTPRequestHandler` from `@trpc/server/adapters/node-http`
33
- */
34
- const requestHandler = nodeHTTPRequestHandler.nodeHTTPRequestHandler;
35
- /**
36
- * @deprecated use `NodeHTTPCreateContextFn` from `@trpc/server/adapters/node-http`
37
- */
11
+ resolveHTTPResponse.assertNotBrowser();
38
12
 
39
13
  const middlewareMarker = /*#__PURE__*/Symbol('middlewareMarker');
40
14
 
@@ -58,33 +32,33 @@ async function wrapCallSafe(fn) {
58
32
  }
59
33
 
60
34
  /* eslint-disable @typescript-eslint/no-explicit-any */
61
- nodeHTTPRequestHandler.assertNotBrowser();
35
+ resolveHTTPResponse.assertNotBrowser();
62
36
 
63
- function getParseFn(inputParser) {
64
- const parser = inputParser;
37
+ function getParseFn(procedureParser) {
38
+ const parser = procedureParser;
65
39
 
66
40
  if (typeof parser === 'function') {
67
- // ProcedureInputParserCustomValidatorEsque
41
+ // ProcedureParserCustomValidatorEsque
68
42
  return parser;
69
43
  }
70
44
 
71
45
  if (typeof parser.parseAsync === 'function') {
72
- // ProcedureInputParserZodEsque
46
+ // ProcedureParserZodEsque
73
47
  return parser.parseAsync.bind(parser);
74
48
  }
75
49
 
76
50
  if (typeof parser.parse === 'function') {
77
- // ProcedureInputParserZodEsque
51
+ // ProcedureParserZodEsque
78
52
  return parser.parse.bind(parser);
79
53
  }
80
54
 
81
55
  if (typeof parser.validateSync === 'function') {
82
- // ProcedureInputParserYupEsque
56
+ // ProcedureParserYupEsque
83
57
  return parser.validateSync.bind(parser);
84
58
  }
85
59
 
86
60
  if (typeof parser.create === 'function') {
87
- // ProcedureInputParserSuperstructEsque
61
+ // ProcedureParserSuperstructEsque
88
62
  return parser.create.bind(parser);
89
63
  }
90
64
 
@@ -100,16 +74,20 @@ class Procedure {
100
74
  this.middlewares = void 0;
101
75
  this.resolver = void 0;
102
76
  this.inputParser = void 0;
103
- this.parse = void 0;
77
+ this.parseInputFn = void 0;
78
+ this.outputParser = void 0;
79
+ this.parseOutputFn = void 0;
104
80
  this.middlewares = opts.middlewares;
105
81
  this.resolver = opts.resolver;
106
82
  this.inputParser = opts.inputParser;
107
- this.parse = getParseFn(this.inputParser);
83
+ this.parseInputFn = getParseFn(this.inputParser);
84
+ this.outputParser = opts.outputParser;
85
+ this.parseOutputFn = getParseFn(this.outputParser);
108
86
  }
109
87
 
110
88
  async parseInput(rawInput) {
111
89
  try {
112
- return await this.parse(rawInput);
90
+ return await this.parseInputFn(rawInput);
113
91
  } catch (cause) {
114
92
  throw new transformTRPCResponse.TRPCError({
115
93
  code: 'BAD_REQUEST',
@@ -117,8 +95,20 @@ class Procedure {
117
95
  });
118
96
  }
119
97
  }
98
+
99
+ async parseOutput(rawOutput) {
100
+ try {
101
+ return await this.parseOutputFn(rawOutput);
102
+ } catch (cause) {
103
+ throw new transformTRPCResponse.TRPCError({
104
+ code: 'INTERNAL_SERVER_ERROR',
105
+ cause,
106
+ message: 'Output validation failed'
107
+ });
108
+ }
109
+ }
120
110
  /**
121
- * Trigger middlewares in order, parse raw input & call resolver
111
+ * Trigger middlewares in order, parse raw input, call resolver & parse raw output
122
112
  * @internal
123
113
  */
124
114
 
@@ -129,10 +119,11 @@ class Procedure {
129
119
  ctx
130
120
  }) => {
131
121
  const input = await this.parseInput(opts.rawInput);
132
- const data = await this.resolver({ ...opts,
122
+ const rawOutput = await this.resolver({ ...opts,
133
123
  ctx,
134
124
  input
135
125
  });
126
+ const data = await this.parseOutput(rawOutput);
136
127
  return {
137
128
  marker: middlewareMarker,
138
129
  ok: true,
@@ -189,7 +180,8 @@ class Procedure {
189
180
  const instance = new Constructor({
190
181
  middlewares: [...middlewares, ...this.middlewares],
191
182
  resolver: this.resolver,
192
- inputParser: this.inputParser
183
+ inputParser: this.inputParser,
184
+ outputParser: this.outputParser
193
185
  });
194
186
  return instance;
195
187
  }
@@ -206,15 +198,17 @@ function createProcedure(opts) {
206
198
 
207
199
  return undefined;
208
200
  };
201
+ const outputParser = 'output' in opts && opts.output ? opts.output : output => output;
209
202
  return new Procedure({
210
203
  inputParser: inputParser,
211
204
  resolver: opts.resolve,
212
- middlewares: []
205
+ middlewares: [],
206
+ outputParser: outputParser
213
207
  });
214
208
  }
215
209
 
216
210
  /* eslint-disable @typescript-eslint/ban-types */
217
- nodeHTTPRequestHandler.assertNotBrowser();
211
+ resolveHTTPResponse.assertNotBrowser();
218
212
  /**
219
213
  * @public
220
214
  */
@@ -462,7 +456,7 @@ class Router {
462
456
  code: codes.TRPC_ERROR_CODES_BY_KEY[code],
463
457
  data: {
464
458
  code,
465
- httpStatus: nodeHTTPRequestHandler.getHTTPStatusCodeFromError(error)
459
+ httpStatus: resolveHTTPResponse.getHTTPStatusCodeFromError(error)
466
460
  }
467
461
  };
468
462
 
@@ -508,25 +502,14 @@ class Router {
508
502
  }
509
503
 
510
504
  }
511
- /**
512
- * Subclass of `VNextRouter` with `TInputContext` and `TContext` set to the same type, for backcompat.
513
- *
514
- * @deprecated
515
- */
516
-
517
- class LegacyRouter extends Router {}
518
505
  function router() {
519
506
  return new Router();
520
507
  }
521
508
 
522
- exports.assertNotBrowser = nodeHTTPRequestHandler.assertNotBrowser;
523
- exports.resolveHTTPResponse = nodeHTTPRequestHandler.resolveHTTPResponse;
509
+ exports.assertNotBrowser = resolveHTTPResponse.assertNotBrowser;
510
+ exports.resolveHTTPResponse = resolveHTTPResponse.resolveHTTPResponse;
524
511
  exports.Subscription = subscription.Subscription;
525
512
  exports.subscriptionPullFactory = subscription.subscriptionPullFactory;
526
513
  exports.TRPCError = transformTRPCResponse.TRPCError;
527
- exports.LegacyRouter = LegacyRouter;
528
- exports.Router = LegacyRouter;
529
- exports.createHttpHandler = createHttpHandler;
530
- exports.createHttpServer = createHttpServer;
531
- exports.requestHandler = requestHandler;
514
+ exports.Router = Router;
532
515
  exports.router = router;
@@ -1,39 +1,13 @@
1
- import { a as assertNotBrowser, n as nodeHTTPRequestHandler, g as getHTTPStatusCodeFromError } from './nodeHTTPRequestHandler-2e6cc2d7.esm.js';
2
- export { a as assertNotBrowser, r as resolveHTTPResponse } from './nodeHTTPRequestHandler-2e6cc2d7.esm.js';
3
- export { S as Subscription, s as subscriptionPullFactory } from './subscription-fbda2888.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';
6
- import { createHTTPServer, createHTTPHandler } from '../adapters/standalone/dist/trpc-server-adapters-standalone.esm.js';
7
- import { T as TRPC_ERROR_CODES_BY_KEY } from './codes-fe07bf82.esm.js';
8
- import 'url';
1
+ import { a as assertNotBrowser, g as getHTTPStatusCodeFromError } from './resolveHTTPResponse-3292a84a.mjs';
2
+ export { a as assertNotBrowser, r as resolveHTTPResponse } from './resolveHTTPResponse-3292a84a.mjs';
3
+ export { S as Subscription, s as subscriptionPullFactory } from './subscription-0d8a48ec.mjs';
4
+ import { T as TRPCError, g as getErrorFromUnknown } from './transformTRPCResponse-ff424ff4.mjs';
5
+ export { T as TRPCError } from './transformTRPCResponse-ff424ff4.mjs';
6
+ import { T as TRPC_ERROR_CODES_BY_KEY } from './codes-7a3d4f65.mjs';
9
7
  import 'events';
10
- import 'http';
11
8
 
12
9
  assertNotBrowser();
13
10
 
14
- // this has been moved to separate package
15
-
16
- /**
17
- * @deprecated use `createHTTPServer` from `@trpc/server/adapters/standalone`
18
- */
19
- const createHttpServer = createHTTPServer;
20
- /**
21
- * @deprecated use `createHTTPHandler` from `@trpc/server/adapters/standalone`
22
- */
23
-
24
- const createHttpHandler = createHTTPHandler;
25
- /**
26
- * @deprecated use `CreateHTTPHandlerOptions` from `@trpc/server/adapters/standalone`
27
- */
28
-
29
- /**
30
- * @deprecated use `nodeHTTPRequestHandler` from `@trpc/server/adapters/node-http`
31
- */
32
- const requestHandler = nodeHTTPRequestHandler;
33
- /**
34
- * @deprecated use `NodeHTTPCreateContextFn` from `@trpc/server/adapters/node-http`
35
- */
36
-
37
11
  const middlewareMarker = /*#__PURE__*/Symbol('middlewareMarker');
38
12
 
39
13
  /**
@@ -58,31 +32,31 @@ async function wrapCallSafe(fn) {
58
32
  /* eslint-disable @typescript-eslint/no-explicit-any */
59
33
  assertNotBrowser();
60
34
 
61
- function getParseFn(inputParser) {
62
- const parser = inputParser;
35
+ function getParseFn(procedureParser) {
36
+ const parser = procedureParser;
63
37
 
64
38
  if (typeof parser === 'function') {
65
- // ProcedureInputParserCustomValidatorEsque
39
+ // ProcedureParserCustomValidatorEsque
66
40
  return parser;
67
41
  }
68
42
 
69
43
  if (typeof parser.parseAsync === 'function') {
70
- // ProcedureInputParserZodEsque
44
+ // ProcedureParserZodEsque
71
45
  return parser.parseAsync.bind(parser);
72
46
  }
73
47
 
74
48
  if (typeof parser.parse === 'function') {
75
- // ProcedureInputParserZodEsque
49
+ // ProcedureParserZodEsque
76
50
  return parser.parse.bind(parser);
77
51
  }
78
52
 
79
53
  if (typeof parser.validateSync === 'function') {
80
- // ProcedureInputParserYupEsque
54
+ // ProcedureParserYupEsque
81
55
  return parser.validateSync.bind(parser);
82
56
  }
83
57
 
84
58
  if (typeof parser.create === 'function') {
85
- // ProcedureInputParserSuperstructEsque
59
+ // ProcedureParserSuperstructEsque
86
60
  return parser.create.bind(parser);
87
61
  }
88
62
 
@@ -98,16 +72,20 @@ class Procedure {
98
72
  this.middlewares = void 0;
99
73
  this.resolver = void 0;
100
74
  this.inputParser = void 0;
101
- this.parse = void 0;
75
+ this.parseInputFn = void 0;
76
+ this.outputParser = void 0;
77
+ this.parseOutputFn = void 0;
102
78
  this.middlewares = opts.middlewares;
103
79
  this.resolver = opts.resolver;
104
80
  this.inputParser = opts.inputParser;
105
- this.parse = getParseFn(this.inputParser);
81
+ this.parseInputFn = getParseFn(this.inputParser);
82
+ this.outputParser = opts.outputParser;
83
+ this.parseOutputFn = getParseFn(this.outputParser);
106
84
  }
107
85
 
108
86
  async parseInput(rawInput) {
109
87
  try {
110
- return await this.parse(rawInput);
88
+ return await this.parseInputFn(rawInput);
111
89
  } catch (cause) {
112
90
  throw new TRPCError({
113
91
  code: 'BAD_REQUEST',
@@ -115,8 +93,20 @@ class Procedure {
115
93
  });
116
94
  }
117
95
  }
96
+
97
+ async parseOutput(rawOutput) {
98
+ try {
99
+ return await this.parseOutputFn(rawOutput);
100
+ } catch (cause) {
101
+ throw new TRPCError({
102
+ code: 'INTERNAL_SERVER_ERROR',
103
+ cause,
104
+ message: 'Output validation failed'
105
+ });
106
+ }
107
+ }
118
108
  /**
119
- * Trigger middlewares in order, parse raw input & call resolver
109
+ * Trigger middlewares in order, parse raw input, call resolver & parse raw output
120
110
  * @internal
121
111
  */
122
112
 
@@ -127,10 +117,11 @@ class Procedure {
127
117
  ctx
128
118
  }) => {
129
119
  const input = await this.parseInput(opts.rawInput);
130
- const data = await this.resolver({ ...opts,
120
+ const rawOutput = await this.resolver({ ...opts,
131
121
  ctx,
132
122
  input
133
123
  });
124
+ const data = await this.parseOutput(rawOutput);
134
125
  return {
135
126
  marker: middlewareMarker,
136
127
  ok: true,
@@ -187,7 +178,8 @@ class Procedure {
187
178
  const instance = new Constructor({
188
179
  middlewares: [...middlewares, ...this.middlewares],
189
180
  resolver: this.resolver,
190
- inputParser: this.inputParser
181
+ inputParser: this.inputParser,
182
+ outputParser: this.outputParser
191
183
  });
192
184
  return instance;
193
185
  }
@@ -204,10 +196,12 @@ function createProcedure(opts) {
204
196
 
205
197
  return undefined;
206
198
  };
199
+ const outputParser = 'output' in opts && opts.output ? opts.output : output => output;
207
200
  return new Procedure({
208
201
  inputParser: inputParser,
209
202
  resolver: opts.resolve,
210
- middlewares: []
203
+ middlewares: [],
204
+ outputParser: outputParser
211
205
  });
212
206
  }
213
207
 
@@ -506,15 +500,8 @@ class Router {
506
500
  }
507
501
 
508
502
  }
509
- /**
510
- * Subclass of `VNextRouter` with `TInputContext` and `TContext` set to the same type, for backcompat.
511
- *
512
- * @deprecated
513
- */
514
-
515
- class LegacyRouter extends Router {}
516
503
  function router() {
517
504
  return new Router();
518
505
  }
519
506
 
520
- export { LegacyRouter, LegacyRouter as Router, createHttpHandler, createHttpServer, requestHandler, router };
507
+ export { Router, router };
@@ -0,0 +1 @@
1
+
@@ -1,13 +1,13 @@
1
- import { OnErrorFunction } from './OnErrorFunction';
2
- import { AnyRouter } from '../router';
3
- /**
4
- * Base interface for any response handler
5
- */
6
- export interface BaseHandlerOptions<TRouter extends AnyRouter, TRequest> {
7
- onError?: OnErrorFunction<TRouter, TRequest>;
8
- batching?: {
9
- enabled: boolean;
10
- };
11
- router: TRouter;
12
- }
1
+ import { AnyRouter } from '../router';
2
+ import { OnErrorFunction } from './OnErrorFunction';
3
+ /**
4
+ * Base interface for any response handler
5
+ */
6
+ export interface BaseHandlerOptions<TRouter extends AnyRouter, TRequest> {
7
+ onError?: OnErrorFunction<TRouter, TRequest>;
8
+ batching?: {
9
+ enabled: boolean;
10
+ };
11
+ router: TRouter;
12
+ }
13
13
  //# sourceMappingURL=BaseHandlerOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseHandlerOptions.d.ts","sourceRoot":"","sources":["../../src/internals/BaseHandlerOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ;IACrE,OAAO,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,OAAO,CAAC;CACjB"}
@@ -1,11 +1,11 @@
1
- import { AnyRouter, inferRouterContext, ProcedureType } from '../router';
2
- import { TRPCError } from '../TRPCError';
3
- export declare type OnErrorFunction<TRouter extends AnyRouter, TRequest> = (opts: {
4
- error: TRPCError;
5
- type: ProcedureType | 'unknown';
6
- path: string | undefined;
7
- req: TRequest;
8
- input: unknown;
9
- ctx: undefined | inferRouterContext<TRouter>;
10
- }) => void;
1
+ import { TRPCError } from '../TRPCError';
2
+ import { AnyRouter, ProcedureType, inferRouterContext } from '../router';
3
+ export declare type OnErrorFunction<TRouter extends AnyRouter, TRequest> = (opts: {
4
+ error: TRPCError;
5
+ type: ProcedureType | 'unknown';
6
+ path: string | undefined;
7
+ req: TRequest;
8
+ input: unknown;
9
+ ctx: undefined | inferRouterContext<TRouter>;
10
+ }) => void;
11
11
  //# sourceMappingURL=OnErrorFunction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnErrorFunction.d.ts","sourceRoot":"","sources":["../../src/internals/OnErrorFunction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEzE,oBAAY,eAAe,CAAC,OAAO,SAAS,SAAS,EAAE,QAAQ,IAAI,CAAC,IAAI,EAAE;IACxE,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC;IAChC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,GAAG,EAAE,QAAQ,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,SAAS,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;CAC9C,KAAK,IAAI,CAAC"}
@@ -1,10 +1,10 @@
1
- import { AnyRouter, ProcedureType } from '../router';
2
- import { Subscription } from '../subscription';
3
- export declare function callProcedure<TRouter extends AnyRouter<TContext>, TContext>(opts: {
4
- path: string;
5
- input: unknown;
6
- router: TRouter;
7
- ctx: TContext;
8
- type: ProcedureType;
9
- }): Promise<unknown | Subscription<TRouter>>;
1
+ import { AnyRouter, ProcedureType } from '../router';
2
+ import { Subscription } from '../subscription';
3
+ export declare function callProcedure<TRouter extends AnyRouter<TContext>, TContext>(opts: {
4
+ path: string;
5
+ input: unknown;
6
+ router: TRouter;
7
+ ctx: TContext;
8
+ type: ProcedureType;
9
+ }): Promise<unknown | Subscription<TRouter>>;
10
10
  //# sourceMappingURL=callProcedure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callProcedure.d.ts","sourceRoot":"","sources":["../../src/internals/callProcedure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,wBAAsB,aAAa,CACjC,OAAO,SAAS,SAAS,CAAC,QAAQ,CAAC,EACnC,QAAQ,EACR,IAAI,EAAE;IACN,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;CACrB,GAAG,OAAO,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,CAgB3C"}
@@ -1,4 +1,4 @@
1
- import { TRPCError } from '../TRPCError';
2
- export declare function getMessageFromUnkownError(err: unknown, fallback: string): string;
3
- export declare function getErrorFromUnknown(cause: unknown): TRPCError;
1
+ import { TRPCError } from '../TRPCError';
2
+ export declare function getMessageFromUnkownError(err: unknown, fallback: string): string;
3
+ export declare function getErrorFromUnknown(cause: unknown): TRPCError;
4
4
  //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/internals/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,GACf,MAAM,CASR;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,CAgB7D"}
@@ -1,9 +1,9 @@
1
- declare type KeyFromValue<V, T extends Record<PropertyKey, PropertyKey>> = {
2
- [K in keyof T]: V extends T[K] ? K : never;
3
- }[keyof T];
4
- declare type Invert<T extends Record<PropertyKey, PropertyKey>> = {
5
- [V in T[keyof T]]: KeyFromValue<V, T>;
6
- };
7
- export declare function invert<T extends Record<PropertyKey, PropertyKey>>(obj: T): Invert<T>;
8
- export {};
1
+ declare type KeyFromValue<V, T extends Record<PropertyKey, PropertyKey>> = {
2
+ [K in keyof T]: V extends T[K] ? K : never;
3
+ }[keyof T];
4
+ declare type Invert<T extends Record<PropertyKey, PropertyKey>> = {
5
+ [V in T[keyof T]]: KeyFromValue<V, T>;
6
+ };
7
+ export declare function invert<T extends Record<PropertyKey, PropertyKey>>(obj: T): Invert<T>;
8
+ export {};
9
9
  //# sourceMappingURL=invert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invert.d.ts","sourceRoot":"","sources":["../../src/internals/invert.ts"],"names":[],"mappings":"AAAA,aAAK,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI;KAChE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CAC3C,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,aAAK,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI;KACvD,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;CACtC,CAAC;AAEF,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,WAAW,EAAE,WAAW,CAAC,EAC/D,GAAG,EAAE,CAAC,GACL,MAAM,CAAC,CAAC,CAAC,CAOX"}
@@ -1,34 +1,34 @@
1
- import { ProcedureType } from '../router';
2
- import { TRPCError } from '../TRPCError';
3
- export declare const middlewareMarker: unique symbol;
4
- interface MiddlewareResultBase<TContext> {
5
- /**
6
- * All middlewares should pass through their `next()`'s output.
7
- * Requiring this marker makes sure that can't be forgotten at compile-time.
8
- */
9
- readonly marker: typeof middlewareMarker;
10
- ctx: TContext;
11
- }
12
- interface MiddlewareOKResult<TContext> extends MiddlewareResultBase<TContext> {
13
- ok: true;
14
- data: unknown;
15
- }
16
- interface MiddlewareErrorResult<TContext> extends MiddlewareResultBase<TContext> {
17
- ok: false;
18
- error: TRPCError;
19
- }
20
- export declare type MiddlewareResult<TContext> = MiddlewareOKResult<TContext> | MiddlewareErrorResult<TContext>;
21
- export declare type MiddlewareFunction<TInputContext, TContext> = (opts: {
22
- ctx: TInputContext;
23
- type: ProcedureType;
24
- path: string;
25
- rawInput: unknown;
26
- next: {
27
- (): Promise<MiddlewareResult<TInputContext>>;
28
- <T>(opts: {
29
- ctx: T;
30
- }): Promise<MiddlewareResult<T>>;
31
- };
32
- }) => Promise<MiddlewareResult<TContext>>;
33
- export {};
1
+ import { TRPCError } from '../TRPCError';
2
+ import { ProcedureType } from '../router';
3
+ export declare const middlewareMarker: unique symbol;
4
+ interface MiddlewareResultBase<TContext> {
5
+ /**
6
+ * All middlewares should pass through their `next()`'s output.
7
+ * Requiring this marker makes sure that can't be forgotten at compile-time.
8
+ */
9
+ readonly marker: typeof middlewareMarker;
10
+ ctx: TContext;
11
+ }
12
+ interface MiddlewareOKResult<TContext> extends MiddlewareResultBase<TContext> {
13
+ ok: true;
14
+ data: unknown;
15
+ }
16
+ interface MiddlewareErrorResult<TContext> extends MiddlewareResultBase<TContext> {
17
+ ok: false;
18
+ error: TRPCError;
19
+ }
20
+ export declare type MiddlewareResult<TContext> = MiddlewareOKResult<TContext> | MiddlewareErrorResult<TContext>;
21
+ export declare type MiddlewareFunction<TInputContext, TContext> = (opts: {
22
+ ctx: TInputContext;
23
+ type: ProcedureType;
24
+ path: string;
25
+ rawInput: unknown;
26
+ next: {
27
+ (): Promise<MiddlewareResult<TInputContext>>;
28
+ <T>(opts: {
29
+ ctx: T;
30
+ }): Promise<MiddlewareResult<T>>;
31
+ };
32
+ }) => Promise<MiddlewareResult<TContext>>;
33
+ export {};
34
34
  //# sourceMappingURL=middlewares.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middlewares.d.ts","sourceRoot":"","sources":["../../src/internals/middlewares.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,eAAO,MAAM,gBAAgB,eAA6B,CAAC;AAC3D,UAAU,oBAAoB,CAAC,QAAQ;IACrC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,gBAAgB,CAAC;IACzC,GAAG,EAAE,QAAQ,CAAC;CACf;AAED,UAAU,kBAAkB,CAAC,QAAQ,CAAE,SAAQ,oBAAoB,CAAC,QAAQ,CAAC;IAC3E,EAAE,EAAE,IAAI,CAAC;IACT,IAAI,EAAE,OAAO,CAAC;CAEf;AACD,UAAU,qBAAqB,CAAC,QAAQ,CACtC,SAAQ,oBAAoB,CAAC,QAAQ,CAAC;IACtC,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,SAAS,CAAC;CAElB;AAED,oBAAY,gBAAgB,CAAC,QAAQ,IACjC,kBAAkB,CAAC,QAAQ,CAAC,GAC5B,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AAEpC,oBAAY,kBAAkB,CAAC,aAAa,EAAE,QAAQ,IAAI,CAAC,IAAI,EAAE;IAC/D,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE;QACJ,IAAI,OAAO,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;QAC7C,CAAC,CAAC,EAAE,IAAI,EAAE;YAAE,GAAG,EAAE,CAAC,CAAA;SAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;KACrD,CAAC;CACH,KAAK,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC"}