@trpc/server 10.0.0-alpha.8 → 10.0.0-proxy-alpha.53

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 (355) hide show
  1. package/README.md +79 -1
  2. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.d.ts +1 -0
  3. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.dev.js +190 -0
  4. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.js +7 -0
  5. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.cjs.prod.js +190 -0
  6. package/adapters/aws-lambda/dist/trpc-server-adapters-aws-lambda.esm.js +186 -0
  7. package/adapters/aws-lambda/index.d.ts +1 -0
  8. package/adapters/aws-lambda/index.js +1 -0
  9. package/adapters/express/dist/trpc-server-adapters-express.cjs.dev.js +7 -7
  10. package/adapters/express/dist/trpc-server-adapters-express.cjs.prod.js +7 -7
  11. package/adapters/express/dist/trpc-server-adapters-express.esm.js +7 -7
  12. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.dev.js +18 -11
  13. package/adapters/fastify/dist/trpc-server-adapters-fastify.cjs.prod.js +18 -11
  14. package/adapters/fastify/dist/trpc-server-adapters-fastify.esm.js +18 -11
  15. package/adapters/fastify/index.d.ts +1 -0
  16. package/adapters/fastify/index.js +1 -0
  17. package/adapters/fetch/index.d.ts +1 -0
  18. package/adapters/fetch/index.js +1 -0
  19. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.d.ts +1 -0
  20. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.dev.js +25 -0
  21. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.js +7 -0
  22. package/adapters/lambda/dist/trpc-server-adapters-lambda.cjs.prod.js +25 -0
  23. package/adapters/lambda/dist/trpc-server-adapters-lambda.esm.js +21 -0
  24. package/adapters/next/dist/trpc-server-adapters-next.cjs.dev.js +4 -4
  25. package/adapters/next/dist/trpc-server-adapters-next.cjs.prod.js +4 -4
  26. package/adapters/next/dist/trpc-server-adapters-next.esm.js +4 -4
  27. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.dev.js +4 -4
  28. package/adapters/node-http/dist/trpc-server-adapters-node-http.cjs.prod.js +4 -4
  29. package/adapters/node-http/dist/trpc-server-adapters-node-http.esm.js +4 -4
  30. package/adapters/node-http/index.js +1 -1
  31. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.dev.js +5 -5
  32. package/adapters/standalone/dist/trpc-server-adapters-standalone.cjs.prod.js +5 -5
  33. package/adapters/standalone/dist/trpc-server-adapters-standalone.esm.js +5 -5
  34. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.dev.js +24 -7
  35. package/adapters/ws/dist/trpc-server-adapters-ws.cjs.prod.js +24 -7
  36. package/adapters/ws/dist/trpc-server-adapters-ws.esm.js +24 -7
  37. package/dist/TRPCError-bcb38a84.js +61 -0
  38. package/dist/TRPCError-e6e632a5.mjs +57 -0
  39. package/dist/adapters/aws-lambda/index.d.ts +14 -0
  40. package/dist/adapters/aws-lambda/index.d.ts.map +1 -0
  41. package/dist/adapters/aws-lambda/index.js +153 -0
  42. package/dist/adapters/aws-lambda/index.mjs +149 -0
  43. package/dist/adapters/aws-lambda/utils.d.ts +35 -0
  44. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -0
  45. package/dist/adapters/express.d.ts +1 -1
  46. package/dist/adapters/express.d.ts.map +1 -1
  47. package/dist/adapters/express.js +14 -13
  48. package/dist/adapters/express.mjs +14 -13
  49. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +2 -2
  50. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  51. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +2 -2
  52. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
  53. package/dist/adapters/fastify/index.d.ts.map +1 -1
  54. package/dist/adapters/fastify/index.js +87 -0
  55. package/dist/adapters/fastify/index.mjs +82 -0
  56. package/dist/adapters/fetch/fetchRequestHandler.d.ts +8 -0
  57. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -0
  58. package/dist/adapters/fetch/index.d.ts +3 -0
  59. package/dist/adapters/fetch/index.d.ts.map +1 -0
  60. package/dist/adapters/fetch/index.js +57 -0
  61. package/dist/adapters/fetch/index.mjs +53 -0
  62. package/dist/adapters/fetch/types.d.ts +21 -0
  63. package/dist/adapters/fetch/types.d.ts.map +1 -0
  64. package/dist/adapters/lambda/index.d.ts +12 -0
  65. package/dist/adapters/lambda/index.d.ts.map +1 -0
  66. package/dist/adapters/next.d.ts +2 -2
  67. package/dist/adapters/next.d.ts.map +1 -1
  68. package/dist/adapters/next.js +42 -46
  69. package/dist/adapters/next.mjs +42 -46
  70. package/dist/adapters/node-http/index.d.ts.map +1 -1
  71. package/dist/adapters/node-http/index.js +5 -4
  72. package/dist/adapters/node-http/index.mjs +5 -4
  73. package/dist/adapters/node-http/internals/getPostBody.d.ts +1 -1
  74. package/dist/adapters/node-http/internals/getPostBody.d.ts.map +1 -1
  75. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +2 -2
  76. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  77. package/dist/adapters/node-http/types.d.ts +11 -9
  78. package/dist/adapters/node-http/types.d.ts.map +1 -1
  79. package/dist/adapters/standalone.d.ts +2 -2
  80. package/dist/adapters/standalone.d.ts.map +1 -1
  81. package/dist/adapters/standalone.js +30 -28
  82. package/dist/adapters/standalone.mjs +30 -27
  83. package/dist/adapters/ws.d.ts +8 -6
  84. package/dist/adapters/ws.d.ts.map +1 -1
  85. package/dist/adapters/ws.js +284 -317
  86. package/dist/adapters/ws.mjs +284 -317
  87. package/dist/assertNotBrowser.d.ts.map +1 -1
  88. package/dist/codes-1c24d919.js +47 -0
  89. package/dist/codes-aaa7d554.mjs +44 -0
  90. package/dist/core/index.d.ts +6 -0
  91. package/dist/core/index.d.ts.map +1 -0
  92. package/dist/core/initTRPC.d.ts +95 -0
  93. package/dist/core/initTRPC.d.ts.map +1 -0
  94. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts +302 -0
  95. package/dist/core/internals/__generated__/mergeRoutersGeneric.d.ts.map +1 -0
  96. package/dist/core/internals/config.d.ts +36 -0
  97. package/dist/core/internals/config.d.ts.map +1 -0
  98. package/dist/core/internals/getParseFn.d.ts +9 -0
  99. package/dist/core/internals/getParseFn.d.ts.map +1 -0
  100. package/dist/core/internals/mergeRouters.d.ts +3 -0
  101. package/dist/core/internals/mergeRouters.d.ts.map +1 -0
  102. package/dist/core/internals/mergeWithoutOverrides.d.ts +5 -0
  103. package/dist/core/internals/mergeWithoutOverrides.d.ts.map +1 -0
  104. package/dist/core/internals/omitPrototype.d.ts +6 -0
  105. package/dist/core/internals/omitPrototype.d.ts.map +1 -0
  106. package/dist/core/internals/prefixObjectKeys.d.ts +2 -0
  107. package/dist/core/internals/prefixObjectKeys.d.ts.map +1 -0
  108. package/dist/core/internals/procedureBuilder.d.ts +124 -0
  109. package/dist/core/internals/procedureBuilder.d.ts.map +1 -0
  110. package/dist/core/internals/utils.d.ts +44 -0
  111. package/dist/core/internals/utils.d.ts.map +1 -0
  112. package/dist/core/middleware.d.ts +87 -0
  113. package/dist/core/middleware.d.ts.map +1 -0
  114. package/dist/core/parser.d.ts +25 -0
  115. package/dist/core/parser.d.ts.map +1 -0
  116. package/dist/core/procedure.d.ts +89 -0
  117. package/dist/core/procedure.d.ts.map +1 -0
  118. package/dist/core/router.d.ts +136 -0
  119. package/dist/core/router.d.ts.map +1 -0
  120. package/dist/core/types.d.ts +19 -0
  121. package/dist/core/types.d.ts.map +1 -0
  122. package/dist/{internals → deprecated/internals}/callProcedure.d.ts +5 -2
  123. package/dist/deprecated/internals/callProcedure.d.ts.map +1 -0
  124. package/dist/{internals → deprecated/internals}/middlewares.d.ts +21 -3
  125. package/dist/deprecated/internals/middlewares.d.ts.map +1 -0
  126. package/dist/deprecated/internals/procedure.d.ts +96 -0
  127. package/dist/deprecated/internals/procedure.d.ts.map +1 -0
  128. package/dist/deprecated/interop.d.ts +61 -0
  129. package/dist/deprecated/interop.d.ts.map +1 -0
  130. package/dist/deprecated/router.d.ts +194 -0
  131. package/dist/deprecated/router.d.ts.map +1 -0
  132. package/dist/error/TRPCError.d.ts +11 -0
  133. package/dist/error/TRPCError.d.ts.map +1 -0
  134. package/dist/error/formatter.d.ts +33 -0
  135. package/dist/error/formatter.d.ts.map +1 -0
  136. package/dist/{internals/errors.d.ts → error/utils.d.ts} +3 -2
  137. package/dist/error/utils.d.ts.map +1 -0
  138. package/dist/http/index.d.ts +1 -1
  139. package/dist/http/index.d.ts.map +1 -1
  140. package/dist/http/internals/getHTTPStatusCode.d.ts +2 -1
  141. package/dist/http/internals/getHTTPStatusCode.d.ts.map +1 -1
  142. package/dist/http/internals/types.d.ts +11 -8
  143. package/dist/http/internals/types.d.ts.map +1 -1
  144. package/dist/http/resolveHTTPResponse.d.ts +4 -4
  145. package/dist/http/resolveHTTPResponse.d.ts.map +1 -1
  146. package/dist/http/{ResponseMeta.d.ts → types.d.ts} +1 -1
  147. package/dist/http/types.d.ts.map +1 -0
  148. package/dist/index-47817162.mjs +26 -0
  149. package/dist/index-9d687d33.js +28 -0
  150. package/dist/index.d.ts +4 -5
  151. package/dist/index.d.ts.map +1 -1
  152. package/dist/index.js +78 -516
  153. package/dist/index.mjs +71 -508
  154. package/dist/internals/invert.d.ts.map +1 -1
  155. package/dist/internals/transformTRPCResponse.d.ts +5 -3
  156. package/dist/internals/transformTRPCResponse.d.ts.map +1 -1
  157. package/dist/internals/types.d.ts +23 -0
  158. package/dist/internals/types.d.ts.map +1 -0
  159. package/dist/internals.d.ts +11 -0
  160. package/dist/internals.d.ts.map +1 -0
  161. package/dist/nodeHTTPRequestHandler-2c467c02.mjs +80 -0
  162. package/dist/nodeHTTPRequestHandler-6609461a.js +82 -0
  163. package/dist/observable/index.d.ts +5 -0
  164. package/dist/observable/index.d.ts.map +1 -0
  165. package/dist/observable/index.js +157 -0
  166. package/dist/observable/index.mjs +148 -0
  167. package/dist/observable/internals/identity.d.ts +2 -0
  168. package/dist/observable/internals/identity.d.ts.map +1 -0
  169. package/dist/observable/internals/observableToPromise.d.ts +10 -0
  170. package/dist/observable/internals/observableToPromise.d.ts.map +1 -0
  171. package/dist/observable/internals/pipe.d.ts +4 -0
  172. package/dist/observable/internals/pipe.d.ts.map +1 -0
  173. package/dist/observable/observable.d.ts +5 -0
  174. package/dist/observable/observable.d.ts.map +1 -0
  175. package/dist/observable/operators/index.d.ts +4 -0
  176. package/dist/observable/operators/index.d.ts.map +1 -0
  177. package/dist/observable/operators/map.d.ts +3 -0
  178. package/dist/observable/operators/map.d.ts.map +1 -0
  179. package/dist/observable/operators/share.d.ts +6 -0
  180. package/dist/observable/operators/share.d.ts.map +1 -0
  181. package/dist/observable/operators/tap.d.ts +3 -0
  182. package/dist/observable/operators/tap.d.ts.map +1 -0
  183. package/dist/observable/types.d.ts +29 -0
  184. package/dist/observable/types.d.ts.map +1 -0
  185. package/dist/observable-b651bf11.js +84 -0
  186. package/dist/observable-e129ac9d.mjs +81 -0
  187. package/dist/resolveHTTPResponse-11d52bd0.mjs +255 -0
  188. package/dist/resolveHTTPResponse-29d4b64a.js +259 -0
  189. package/dist/router-3ee4babe.js +903 -0
  190. package/dist/router-a2a75de3.mjs +893 -0
  191. package/dist/rpc/codes.d.ts +2 -0
  192. package/dist/rpc/codes.d.ts.map +1 -1
  193. package/dist/rpc/envelopes.d.ts +64 -41
  194. package/dist/rpc/envelopes.d.ts.map +1 -1
  195. package/dist/rpc/index.d.ts.map +1 -1
  196. package/dist/rpc/index.js +1 -1
  197. package/dist/rpc/index.mjs +1 -1
  198. package/dist/rpc/internals/invert.d.ts +18 -0
  199. package/dist/rpc/internals/invert.d.ts.map +1 -0
  200. package/dist/shared/createProxy/index.d.ts +12 -0
  201. package/dist/shared/createProxy/index.d.ts.map +1 -0
  202. package/dist/shared/index.d.ts +2 -0
  203. package/dist/shared/index.d.ts.map +1 -0
  204. package/dist/shared/index.js +9 -0
  205. package/dist/shared/index.mjs +1 -0
  206. package/dist/subscription.d.ts +3 -52
  207. package/dist/subscription.d.ts.map +1 -1
  208. package/dist/subscription.js +34 -0
  209. package/dist/subscription.mjs +30 -0
  210. package/dist/transformTRPCResponse-11ac69cc.js +27 -0
  211. package/dist/transformTRPCResponse-c8138d5f.mjs +25 -0
  212. package/dist/transformer.d.ts +14 -0
  213. package/dist/transformer.d.ts.map +1 -1
  214. package/dist/types.d.ts +37 -10
  215. package/dist/types.d.ts.map +1 -1
  216. package/observable/index.d.ts +1 -0
  217. package/observable/index.js +1 -0
  218. package/package.json +53 -25
  219. package/rpc/dist/trpc-server-rpc.cjs.dev.js +1 -1
  220. package/rpc/dist/trpc-server-rpc.cjs.prod.js +1 -1
  221. package/rpc/dist/trpc-server-rpc.esm.js +1 -1
  222. package/rpc/index.js +1 -1
  223. package/shared/index.d.ts +1 -0
  224. package/shared/index.js +1 -0
  225. package/src/adapters/aws-lambda/index.ts +173 -0
  226. package/src/adapters/aws-lambda/utils.ts +92 -0
  227. package/src/adapters/express.ts +4 -4
  228. package/src/adapters/fastify/fastifyRequestHandler.ts +6 -8
  229. package/src/adapters/fastify/fastifyTRPCPlugin.ts +17 -9
  230. package/src/adapters/fetch/fetchRequestHandler.ts +61 -0
  231. package/src/adapters/fetch/index.ts +2 -0
  232. package/src/adapters/fetch/types.ts +28 -0
  233. package/src/adapters/lambda/index.ts +18 -0
  234. package/src/adapters/next.ts +10 -8
  235. package/src/adapters/node-http/internals/getPostBody.test.ts +2 -1
  236. package/src/adapters/node-http/internals/getPostBody.ts +1 -1
  237. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +7 -7
  238. package/src/adapters/node-http/types.ts +11 -9
  239. package/src/adapters/standalone.ts +12 -4
  240. package/src/adapters/ws.ts +150 -91
  241. package/src/assertNotBrowser.ts +1 -0
  242. package/src/core/index.ts +15 -0
  243. package/src/core/initTRPC.ts +94 -0
  244. package/src/core/internals/__generated__/mergeRoutersGeneric.ts +406 -0
  245. package/src/core/internals/config.ts +43 -0
  246. package/src/core/internals/getParseFn.ts +47 -0
  247. package/src/core/internals/mergeRouters.ts +45 -0
  248. package/src/core/internals/mergeWithoutOverrides.ts +19 -0
  249. package/src/core/internals/omitPrototype.ts +9 -0
  250. package/src/core/internals/prefixObjectKeys.ts +9 -0
  251. package/src/core/internals/procedureBuilder.ts +430 -0
  252. package/src/core/internals/utils.ts +64 -0
  253. package/src/core/middleware.ts +96 -0
  254. package/src/core/parser.ts +45 -0
  255. package/src/core/procedure.ts +121 -0
  256. package/src/core/router.ts +351 -0
  257. package/src/core/types.ts +58 -0
  258. package/src/{internals → deprecated/internals}/callProcedure.ts +9 -3
  259. package/src/{internals → deprecated/internals}/middlewares.ts +23 -3
  260. package/src/deprecated/internals/procedure.ts +415 -0
  261. package/src/deprecated/interop.ts +272 -0
  262. package/src/{router.ts → deprecated/router.ts} +221 -108
  263. package/src/{TRPCError.ts → error/TRPCError.ts} +6 -14
  264. package/src/error/formatter.ts +51 -0
  265. package/src/{internals/errors.ts → error/utils.ts} +24 -5
  266. package/src/http/index.ts +1 -1
  267. package/src/http/internals/getHTTPStatusCode.ts +3 -2
  268. package/src/http/internals/types.ts +11 -14
  269. package/src/http/resolveHTTPResponse.ts +34 -39
  270. package/src/http/{ResponseMeta.ts → types.ts} +0 -0
  271. package/src/index.ts +4 -7
  272. package/src/internals/transformTRPCResponse.ts +21 -16
  273. package/src/internals/types.ts +24 -0
  274. package/src/internals.ts +14 -0
  275. package/src/observable/index.ts +4 -0
  276. package/src/observable/internals/identity.ts +3 -0
  277. package/src/observable/internals/observableToPromise.ts +49 -0
  278. package/src/observable/internals/pipe.ts +23 -0
  279. package/src/observable/observable.test.ts +101 -0
  280. package/src/observable/observable.ts +78 -0
  281. package/src/observable/operators/index.ts +3 -0
  282. package/src/observable/operators/map.test.ts +92 -0
  283. package/src/observable/operators/map.ts +25 -0
  284. package/src/observable/operators/share.test.ts +60 -0
  285. package/src/observable/operators/share.ts +67 -0
  286. package/src/observable/operators/tap.ts +26 -0
  287. package/src/observable/types.ts +69 -0
  288. package/src/rpc/codes.ts +2 -1
  289. package/src/rpc/envelopes.ts +94 -68
  290. package/src/rpc/internals/invert.ts +27 -0
  291. package/src/shared/createProxy/index.ts +38 -0
  292. package/src/shared/index.ts +1 -0
  293. package/src/subscription.ts +7 -125
  294. package/src/transformer.ts +28 -0
  295. package/src/types.ts +45 -15
  296. package/subscription/index.d.ts +1 -0
  297. package/subscription/index.js +1 -0
  298. package/adapters/fastify/package.json +0 -4
  299. package/dist/TRPCError.d.ts +0 -19
  300. package/dist/TRPCError.d.ts.map +0 -1
  301. package/dist/adapters/express.ts.js +0 -1
  302. package/dist/adapters/next.ts.js +0 -1
  303. package/dist/adapters/node-http/index.ts.js +0 -1
  304. package/dist/adapters/standalone.ts.js +0 -1
  305. package/dist/adapters/ws.ts.js +0 -1
  306. package/dist/codes-7a3d4f65.mjs +0 -56
  307. package/dist/codes-7f46544e.js +0 -60
  308. package/dist/deprecated/LegacyRouter.d.ts +0 -3
  309. package/dist/deprecated/LegacyRouter.d.ts.map +0 -1
  310. package/dist/deprecated/createHttpServer.d.ts +0 -19
  311. package/dist/deprecated/createHttpServer.d.ts.map +0 -1
  312. package/dist/deprecated/requestHandler.d.ts +0 -15
  313. package/dist/deprecated/requestHandler.d.ts.map +0 -1
  314. package/dist/http/ResponseMeta.d.ts.map +0 -1
  315. package/dist/index.ts.js +0 -1
  316. package/dist/internals/BaseHandlerOptions.d.ts +0 -13
  317. package/dist/internals/BaseHandlerOptions.d.ts.map +0 -1
  318. package/dist/internals/OnErrorFunction.d.ts +0 -11
  319. package/dist/internals/OnErrorFunction.d.ts.map +0 -1
  320. package/dist/internals/callProcedure.d.ts.map +0 -1
  321. package/dist/internals/errors.d.ts.map +0 -1
  322. package/dist/internals/middlewares.d.ts.map +0 -1
  323. package/dist/internals/procedure.d.ts +0 -74
  324. package/dist/internals/procedure.d.ts.map +0 -1
  325. package/dist/internals/wrapCallSafe.d.ts +0 -16
  326. package/dist/internals/wrapCallSafe.d.ts.map +0 -1
  327. package/dist/nodeHTTPRequestHandler-10e6d2f9.mjs +0 -394
  328. package/dist/nodeHTTPRequestHandler-d7c307d3.js +0 -399
  329. package/dist/router.d.ts +0 -176
  330. package/dist/router.d.ts.map +0 -1
  331. package/dist/rpc/index.ts.js +0 -1
  332. package/dist/subscription-5b7e1eba.js +0 -136
  333. package/dist/subscription-e1d42e69.mjs +0 -133
  334. package/dist/transformTRPCResponse-76e0c91e.mjs +0 -109
  335. package/dist/transformTRPCResponse-bd24f548.js +0 -114
  336. package/dist/ws/index.d.ts +0 -7
  337. package/dist/ws/index.d.ts.map +0 -1
  338. package/dist/ws/index.js +0 -15
  339. package/dist/ws/index.mjs +0 -11
  340. package/dist/ws/index.ts.js +0 -1
  341. package/src/deprecated/LegacyRouter.ts +0 -3
  342. package/src/deprecated/createHttpServer.ts +0 -29
  343. package/src/deprecated/requestHandler.ts +0 -26
  344. package/src/internals/BaseHandlerOptions.ts +0 -13
  345. package/src/internals/OnErrorFunction.ts +0 -11
  346. package/src/internals/procedure.ts +0 -283
  347. package/src/internals/wrapCallSafe.ts +0 -19
  348. package/src/ws/index.ts +0 -8
  349. package/ws/dist/trpc-server-ws.cjs.d.ts +0 -1
  350. package/ws/dist/trpc-server-ws.cjs.dev.js +0 -15
  351. package/ws/dist/trpc-server-ws.cjs.js +0 -7
  352. package/ws/dist/trpc-server-ws.cjs.prod.js +0 -15
  353. package/ws/dist/trpc-server-ws.esm.js +0 -11
  354. package/ws/index.d.ts +0 -1
  355. package/ws/index.js +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/server",
3
- "version": "10.0.0-alpha.8",
3
+ "version": "10.0.0-proxy-alpha.53",
4
4
  "description": "tRPC Server",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -12,12 +12,16 @@
12
12
  },
13
13
  "eslintConfig": {
14
14
  "rules": {
15
- "explicit-module-boundary-types": "off"
15
+ "explicit-module-boundary-types": "off",
16
+ "no-restricted-imports": [
17
+ "error",
18
+ "@trpc/server"
19
+ ]
16
20
  }
17
21
  },
18
22
  "scripts": {
19
- "test": "jest",
20
- "build": "rollup -c"
23
+ "benchmark": "yarn tsc --project tsconfig.benchmark.json",
24
+ "ts-watch": "tsc --project tsconfig.watch.json"
21
25
  },
22
26
  "main": "dist/index.js",
23
27
  "module": "dist/index.mjs",
@@ -28,11 +32,21 @@
28
32
  "require": "./dist/index.js",
29
33
  "default": "./dist/index.js"
30
34
  },
35
+ "./adapters/aws-lambda": {
36
+ "import": "./dist/adapters/aws-lambda/index.mjs",
37
+ "require": "./dist/adapters/aws-lambda/index.js",
38
+ "default": "./dist/adapters/aws-lambda/index.js"
39
+ },
31
40
  "./adapters/express": {
32
41
  "import": "./dist/adapters/express.mjs",
33
42
  "require": "./dist/adapters/express.js",
34
43
  "default": "./dist/adapters/express.js"
35
44
  },
45
+ "./adapters/fastify": {
46
+ "import": "./dist/adapters/fastify/index.mjs",
47
+ "require": "./dist/adapters/fastify/index.js",
48
+ "default": "./dist/adapters/fastify/index.js"
49
+ },
36
50
  "./adapters/next": {
37
51
  "import": "./dist/adapters/next.mjs",
38
52
  "require": "./dist/adapters/next.js",
@@ -48,46 +62,61 @@
48
62
  "require": "./dist/adapters/standalone.js",
49
63
  "default": "./dist/adapters/standalone.js"
50
64
  },
51
- "./adapters/fastify": {
52
- "import": "./dist/adapters/fastify.mjs",
53
- "require": "./dist/adapters/fastify.js",
54
- "default": "./dist/adapters/fastify.js"
55
- },
56
65
  "./adapters/ws": {
57
66
  "import": "./dist/adapters/ws.mjs",
58
67
  "require": "./dist/adapters/ws.js",
59
68
  "default": "./dist/adapters/ws.js"
60
69
  },
61
- "./ws": {
62
- "import": "./dist/ws/index.mjs",
63
- "require": "./dist/ws/index.js",
64
- "default": "./dist/ws/index.js"
70
+ "./adapters/fetch": {
71
+ "import": "./dist/adapters/fetch/index.mjs",
72
+ "require": "./dist/adapters/fetch/index.js",
73
+ "default": "./dist/adapters/fetch/index.js"
65
74
  },
66
75
  "./rpc": {
67
76
  "import": "./dist/rpc/index.mjs",
68
77
  "require": "./dist/rpc/index.js",
69
78
  "default": "./dist/rpc/index.js"
79
+ },
80
+ "./observable": {
81
+ "import": "./dist/observable/index.mjs",
82
+ "require": "./dist/observable/index.js",
83
+ "default": "./dist/observable/index.js"
84
+ },
85
+ "./subscription": {
86
+ "import": "./dist/subscription.mjs",
87
+ "require": "./dist/subscription.js",
88
+ "default": "./dist/subscription.js"
89
+ },
90
+ "./shared": {
91
+ "import": "./dist/shared/index.mjs",
92
+ "require": "./dist/shared/index.js",
93
+ "default": "./dist/shared/index.js"
70
94
  }
71
95
  },
72
96
  "files": [
73
- "README.md",
74
97
  "dist",
98
+ "src",
99
+ "README.md",
75
100
  "adapters",
76
- "ws",
77
101
  "rpc",
78
- "src"
102
+ "observable",
103
+ "subscription",
104
+ "shared"
79
105
  ],
80
106
  "publishConfig": {
81
107
  "access": "public"
82
108
  },
83
109
  "devDependencies": {
84
- "@testing-library/jest-dom": "^5.14.1",
85
- "@testing-library/react": "^12.0.0",
86
- "@testing-library/user-event": "^13.2.1",
110
+ "@cloudflare/workers-types": "^3.14.1",
111
+ "@fastify/websocket": "^5.0.0",
112
+ "@miniflare/core": "^2.4.0",
113
+ "@tanstack/react-query": "^4.0.10",
114
+ "@types/aws-lambda": "^8.10.97",
87
115
  "@types/express": "^4.17.12",
88
116
  "@types/hash-sum": "^1.0.0",
89
117
  "@types/ws": "^8.2.0",
90
118
  "abort-controller": "^3.0.0",
119
+ "aws-lambda": "^1.0.7",
91
120
  "devalue": "^2.0.1",
92
121
  "express": "^4.17.1",
93
122
  "fastify": "^3.27.1",
@@ -95,18 +124,17 @@
95
124
  "fastify-websocket": "^4.0.0",
96
125
  "hash-sum": "^2.0.0",
97
126
  "jest": "^27.1.0",
127
+ "jest-environment-miniflare": "^2.4.0",
98
128
  "konn": "^0.7.0",
129
+ "miniflare": "^2.4.0",
99
130
  "myzod": "^1.3.1",
100
- "next": "^12.0.1",
131
+ "next": "^12.1.6",
101
132
  "node-fetch": "^2.6.1",
102
133
  "superstruct": "^0.15.2",
103
- "typescript": "4.4.4",
134
+ "typescript": "4.7.4",
104
135
  "ws": "^8.0.0",
105
136
  "yup": "^0.32.8",
106
137
  "zod": "^3.0.0"
107
138
  },
108
- "gitHead": "e5ded22d38809f6de68df26ed069ca3cf93bb368",
109
- "dependencies": {
110
- "tslib": "^2.1.0"
111
- }
139
+ "gitHead": "1c5cae03b77ff2ba6b6b870f8dc95021605435ae"
112
140
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var codes = require('../../dist/codes-33cef953.cjs.dev.js');
5
+ var codes = require('../../dist/codes-130e62df.cjs.dev.js');
6
6
 
7
7
 
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var codes = require('../../dist/codes-e0df67c4.cjs.prod.js');
5
+ var codes = require('../../dist/codes-aff770a3.cjs.prod.js');
6
6
 
7
7
 
8
8
 
@@ -1 +1 @@
1
- export { T as TRPC_ERROR_CODES_BY_KEY, a as TRPC_ERROR_CODES_BY_NUMBER } from '../../dist/codes-fe07bf82.esm.js';
1
+ export { T as TRPC_ERROR_CODES_BY_KEY, a as TRPC_ERROR_CODES_BY_NUMBER } from '../../dist/codes-5678cc97.esm.js';
package/rpc/index.js CHANGED
@@ -1 +1 @@
1
- module.exports = require('../dist/rpc/index');
1
+ module.exports = require('../dist/rpc');
@@ -0,0 +1 @@
1
+ export * from '../dist/shared';
@@ -0,0 +1 @@
1
+ module.exports = require('../dist/shared');
@@ -0,0 +1,173 @@
1
+ import type {
2
+ Context as APIGWContext,
3
+ APIGatewayProxyEvent,
4
+ APIGatewayProxyEventV2,
5
+ APIGatewayProxyResult,
6
+ APIGatewayProxyStructuredResultV2,
7
+ } from 'aws-lambda';
8
+ import { TRPCError, resolveHTTPResponse } from '../..';
9
+ import { AnyRouter, inferRouterContext } from '../../core';
10
+ import { HTTPHeaders, HTTPRequest } from '../../http/internals/types';
11
+ import type { HTTPResponse } from '../../http/internals/types';
12
+ import {
13
+ APIGatewayEvent,
14
+ APIGatewayResult,
15
+ AWSLambdaOptions,
16
+ UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE,
17
+ isPayloadV1,
18
+ isPayloadV2,
19
+ } from './utils';
20
+
21
+ export type { CreateAWSLambdaContextOptions, AWSLambdaOptions } from './utils';
22
+
23
+ function lambdaEventToHTTPRequest(event: APIGatewayEvent): HTTPRequest {
24
+ const query = new URLSearchParams();
25
+ for (const [key, value] of Object.entries(
26
+ event.queryStringParameters ?? {},
27
+ )) {
28
+ if (typeof value !== 'undefined') {
29
+ query.append(key, value);
30
+ }
31
+ }
32
+
33
+ return {
34
+ method: getHTTPMethod(event),
35
+ query: query,
36
+ headers: event.headers,
37
+ body: event.body,
38
+ };
39
+ }
40
+
41
+ function getHTTPMethod(event: APIGatewayEvent) {
42
+ if (isPayloadV1(event)) {
43
+ return event.httpMethod;
44
+ }
45
+ if (isPayloadV2(event)) {
46
+ return event.requestContext.http.method;
47
+ }
48
+ throw new TRPCError({
49
+ code: 'INTERNAL_SERVER_ERROR',
50
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE,
51
+ });
52
+ }
53
+
54
+ function getPath(event: APIGatewayEvent) {
55
+ if (isPayloadV1(event)) {
56
+ const matches = event.resource.matchAll(/\{(.*?)\}/g);
57
+ for (const match of matches) {
58
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
59
+ const group = match[1]!;
60
+ if (group.includes('+') && event.pathParameters) {
61
+ return event.pathParameters[group.replace('+', '')] || '';
62
+ }
63
+ }
64
+ return event.path.slice(1);
65
+ }
66
+ if (isPayloadV2(event)) {
67
+ const matches = event.routeKey.matchAll(/\{(.*?)\}/g);
68
+ for (const match of matches) {
69
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
70
+ const group = match[1]!;
71
+ if (group.includes('+') && event.pathParameters) {
72
+ return event.pathParameters[group.replace('+', '')] || '';
73
+ }
74
+ }
75
+ return event.rawPath.slice(1);
76
+ }
77
+ throw new TRPCError({
78
+ code: 'INTERNAL_SERVER_ERROR',
79
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE,
80
+ });
81
+ }
82
+ function transformHeaders(headers: HTTPHeaders): APIGatewayResult['headers'] {
83
+ const obj: APIGatewayResult['headers'] = {};
84
+
85
+ for (const [key, value] of Object.entries(headers)) {
86
+ if (typeof value === 'undefined') {
87
+ continue;
88
+ }
89
+ obj[key] = Array.isArray(value) ? value.join(',') : value;
90
+ }
91
+ return obj;
92
+ }
93
+ function tRPCOutputToAPIGatewayOutput<
94
+ TEvent extends APIGatewayEvent,
95
+ TResult extends APIGatewayResult,
96
+ >(event: TEvent, response: HTTPResponse): TResult {
97
+ if (isPayloadV1(event)) {
98
+ const resp: APIGatewayProxyResult = {
99
+ statusCode: response.status,
100
+ body: response.body ?? '',
101
+ headers: transformHeaders(response.headers ?? {}),
102
+ };
103
+ return resp as TResult;
104
+ } else if (isPayloadV2(event)) {
105
+ const resp: APIGatewayProxyStructuredResultV2 = {
106
+ statusCode: response.status,
107
+ body: response.body ?? undefined,
108
+ headers: transformHeaders(response.headers ?? {}),
109
+ };
110
+ return resp as TResult;
111
+ } else {
112
+ throw new TRPCError({
113
+ code: 'INTERNAL_SERVER_ERROR',
114
+ message: UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE,
115
+ });
116
+ }
117
+ }
118
+
119
+ /** Will check the createContext of the TRouter and get the parameter of event.
120
+ * @internal
121
+ **/
122
+ type inferAPIGWEvent<
123
+ TRouter extends AnyRouter,
124
+ TEvent extends APIGatewayEvent,
125
+ > = AWSLambdaOptions<TRouter, TEvent>['createContext'] extends NonNullable<
126
+ AWSLambdaOptions<TRouter, TEvent>['createContext']
127
+ >
128
+ ? Parameters<AWSLambdaOptions<TRouter, TEvent>['createContext']>[0]['event']
129
+ : APIGatewayEvent;
130
+
131
+ /** 1:1 mapping of v1 or v2 input events, deduces which is which.
132
+ * @internal
133
+ **/
134
+ type inferAPIGWReturn<T> = T extends APIGatewayProxyEvent
135
+ ? APIGatewayProxyResult
136
+ : T extends APIGatewayProxyEventV2
137
+ ? APIGatewayProxyStructuredResultV2
138
+ : never;
139
+ export function awsLambdaRequestHandler<
140
+ TRouter extends AnyRouter,
141
+ TEvent extends inferAPIGWEvent<TRouter, TEvent>,
142
+ TResult extends inferAPIGWReturn<TEvent>,
143
+ >(
144
+ opts: AWSLambdaOptions<TRouter, TEvent>,
145
+ ): (event: TEvent, context: APIGWContext) => Promise<TResult> {
146
+ return async (event, context) => {
147
+ const req = lambdaEventToHTTPRequest(event);
148
+ const path = getPath(event);
149
+ const createContext = async function _createContext(): Promise<
150
+ inferRouterContext<TRouter>
151
+ > {
152
+ return await opts.createContext?.({ event, context });
153
+ };
154
+
155
+ const response = await resolveHTTPResponse({
156
+ router: opts.router,
157
+ batching: opts.batching,
158
+ responseMeta: opts?.responseMeta,
159
+ createContext,
160
+ req,
161
+ path,
162
+ error: null,
163
+ onError(o) {
164
+ opts?.onError?.({
165
+ ...o,
166
+ req: event,
167
+ });
168
+ },
169
+ });
170
+
171
+ return tRPCOutputToAPIGatewayOutput<TEvent, TResult>(event, response);
172
+ };
173
+ }
@@ -0,0 +1,92 @@
1
+ import type {
2
+ Context as APIGWContext,
3
+ APIGatewayProxyEvent,
4
+ APIGatewayProxyEventV2,
5
+ APIGatewayProxyResult,
6
+ APIGatewayProxyStructuredResultV2,
7
+ } from 'aws-lambda';
8
+ import type { AnyRouter, inferRouterContext } from '../../core';
9
+ import type { ResponseMetaFn } from '../../http/internals/types';
10
+ import { OnErrorFunction } from '../../internals/types';
11
+
12
+ export type APIGatewayEvent = APIGatewayProxyEvent | APIGatewayProxyEventV2;
13
+ export type APIGatewayResult =
14
+ | APIGatewayProxyResult
15
+ | APIGatewayProxyStructuredResultV2;
16
+
17
+ export type CreateAWSLambdaContextOptions<T extends APIGatewayEvent> = {
18
+ event: T;
19
+ context: APIGWContext;
20
+ };
21
+ export type AWSLambdaCreateContextFn<
22
+ TRouter extends AnyRouter,
23
+ TEvent extends APIGatewayEvent,
24
+ > = ({
25
+ event,
26
+ context,
27
+ }: CreateAWSLambdaContextOptions<TEvent>) =>
28
+ | inferRouterContext<TRouter>
29
+ | Promise<inferRouterContext<TRouter>>;
30
+
31
+ export type AWSLambdaOptions<
32
+ TRouter extends AnyRouter,
33
+ TEvent extends APIGatewayEvent,
34
+ > =
35
+ | {
36
+ router: TRouter;
37
+ batching?: {
38
+ enabled: boolean;
39
+ };
40
+ onError?: OnErrorFunction<TRouter, TEvent>;
41
+ responseMeta?: ResponseMetaFn<TRouter>;
42
+ } & (
43
+ | {
44
+ /**
45
+ * @link https://trpc.io/docs/context
46
+ **/
47
+ createContext: AWSLambdaCreateContextFn<TRouter, TEvent>;
48
+ }
49
+ | {
50
+ /**
51
+ * @link https://trpc.io/docs/context
52
+ **/
53
+ createContext?: AWSLambdaCreateContextFn<TRouter, TEvent>;
54
+ }
55
+ );
56
+
57
+ export function isPayloadV1(
58
+ event: APIGatewayEvent,
59
+ ): event is APIGatewayProxyEvent {
60
+ return determinePayloadFormat(event) == '1.0';
61
+ }
62
+ export function isPayloadV2(
63
+ event: APIGatewayEvent,
64
+ ): event is APIGatewayProxyEventV2 {
65
+ return determinePayloadFormat(event) == '2.0';
66
+ }
67
+
68
+ function determinePayloadFormat(
69
+ event: APIGatewayEvent,
70
+ ): APIGatewayPayloadFormatVersion {
71
+ // https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html
72
+ // According to AWS support, version is is extracted from the version property in the event.
73
+ // If there is no version property, then the version is implied as 1.0
74
+ const unknownEvent = event as { version?: string };
75
+ if (typeof unknownEvent.version === 'undefined') {
76
+ return '1.0';
77
+ } else {
78
+ if (['1.0', '2.0'].includes(unknownEvent.version)) {
79
+ return unknownEvent.version as APIGatewayPayloadFormatVersion;
80
+ } else {
81
+ return 'custom';
82
+ }
83
+ }
84
+ }
85
+ export type DefinedAPIGatewayPayloadFormats = '1.0' | '2.0';
86
+ export type APIGatewayPayloadFormatVersion =
87
+ | DefinedAPIGatewayPayloadFormats
88
+ | 'custom';
89
+
90
+ export const UNKNOWN_PAYLOAD_FORMAT_VERSION_ERROR_MESSAGE =
91
+ 'Custom payload format version not handled by this adapter. Please use either 1.0 or 2.0. More information here' +
92
+ 'https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html';
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import type * as express from 'express';
3
- import { AnyRouter } from '../router';
3
+ import { AnyRouter } from '../core';
4
4
  import { nodeHTTPRequestHandler } from './node-http';
5
5
  import {
6
6
  NodeHTTPCreateContextFnOptions,
@@ -15,10 +15,10 @@ export type CreateExpressContextOptions = NodeHTTPCreateContextFnOptions<
15
15
  export function createExpressMiddleware<TRouter extends AnyRouter>(
16
16
  opts: NodeHTTPHandlerOptions<TRouter, express.Request, express.Response>,
17
17
  ): express.Handler {
18
- return (req, res) => {
19
- const endpoint = req.path.substr(1);
18
+ return async (req, res) => {
19
+ const endpoint = req.path.slice(1);
20
20
 
21
- nodeHTTPRequestHandler({
21
+ await nodeHTTPRequestHandler({
22
22
  ...opts,
23
23
  req,
24
24
  res,
@@ -1,13 +1,12 @@
1
- import { URLSearchParams } from 'url';
2
1
  import { FastifyReply, FastifyRequest } from 'fastify';
3
2
  import { assertNotBrowser } from '../../assertNotBrowser';
4
- import { NodeHTTPCreateContextOption } from '../node-http';
5
- import { AnyRouter, inferRouterContext } from '../../router';
6
- import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
3
+ import { AnyRouter, inferRouterContext } from '../../core';
7
4
  import {
8
5
  HTTPBaseHandlerOptions,
9
6
  HTTPRequest,
10
7
  } from '../../http/internals/types';
8
+ import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
9
+ import { NodeHTTPCreateContextOption } from '../node-http';
11
10
 
12
11
  assertNotBrowser();
13
12
 
@@ -67,13 +66,12 @@ export async function fastifyRequestHandler<
67
66
  if ('status' in result && (!res.statusCode || res.statusCode === 200)) {
68
67
  res.statusCode = result.status;
69
68
  }
70
-
71
69
  for (const [key, value] of Object.entries(result.headers ?? {})) {
72
70
  if (typeof value === 'undefined') {
73
71
  continue;
74
72
  }
75
- res.header(key, value);
76
- }
77
73
 
78
- res.send(result.body);
74
+ void res.header(key, value);
75
+ }
76
+ await res.send(result.body);
79
77
  }
@@ -1,10 +1,10 @@
1
- /// <reference types="fastify-websocket" />
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
- import { AnyRouter } from '../..';
4
+ import { AnyRouter } from '../../core';
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;
@@ -30,18 +30,26 @@ export function fastifyTRPCPlugin<TRouter extends AnyRouter>(
30
30
  },
31
31
  );
32
32
 
33
- fastify.all(`${opts.prefix ?? ''}/:path`, (req, res) => {
33
+ let prefix = opts.prefix ?? '';
34
+
35
+ // https://github.com/fastify/fastify-plugin/blob/fe079bef6557a83794bf437e14b9b9edb8a74104/plugin.js#L11
36
+ // @ts-expect-error property 'default' does not exists on type ...
37
+ if (typeof fastifyTRPCPlugin.default !== 'function') {
38
+ prefix = ''; // handled by fastify internally
39
+ }
40
+
41
+ fastify.all(`${prefix}/:path`, async (req, res) => {
34
42
  const path = (req.params as any).path;
35
- fastifyRequestHandler({ ...opts.trpcOptions, req, res, path });
43
+ await fastifyRequestHandler({ ...opts.trpcOptions, req, res, path });
36
44
  });
37
45
 
38
46
  if (opts.useWSS) {
39
47
  applyWSSHandler<TRouter>({
40
- ...(opts.trpcOptions as WSSHandlerOptions<TRouter>),
48
+ ...(opts.trpcOptions as unknown as WSSHandlerOptions<TRouter>),
41
49
  wss: fastify.websocketServer,
42
50
  });
43
51
  // eslint-disable-next-line @typescript-eslint/no-empty-function
44
- fastify.get(opts.prefix ?? '/', { websocket: true }, () => {});
52
+ fastify.get(prefix ?? '/', { websocket: true }, () => {});
45
53
  }
46
54
 
47
55
  done();
@@ -0,0 +1,61 @@
1
+ import { assertNotBrowser } from '../../assertNotBrowser';
2
+ import { AnyRouter } from '../../core';
3
+ import { HTTPRequest } from '../../http/internals/types';
4
+ import { resolveHTTPResponse } from '../../http/resolveHTTPResponse';
5
+ import { FetchHandlerOptions } from './types';
6
+
7
+ assertNotBrowser();
8
+
9
+ export type FetchHandlerRequestOptions<TRouter extends AnyRouter> = {
10
+ req: Request;
11
+ endpoint: string;
12
+ } & FetchHandlerOptions<TRouter>;
13
+
14
+ export async function fetchRequestHandler<TRouter extends AnyRouter>(
15
+ opts: FetchHandlerRequestOptions<TRouter>,
16
+ ): Promise<Response> {
17
+ const createContext = async () => {
18
+ return opts.createContext?.({ req: opts.req });
19
+ };
20
+
21
+ const url = new URL(opts.req.url);
22
+ const path = url.pathname.slice(opts.endpoint.length + 1);
23
+ const req: HTTPRequest = {
24
+ query: url.searchParams,
25
+ method: opts.req.method,
26
+ headers: Object.fromEntries(opts.req.headers),
27
+ body: await opts.req.text(),
28
+ };
29
+
30
+ const result = await resolveHTTPResponse({
31
+ req,
32
+ createContext,
33
+ path,
34
+ router: opts.router,
35
+ batching: opts.batching,
36
+ responseMeta: opts.responseMeta,
37
+ onError(o) {
38
+ opts?.onError?.({ ...o, req: opts.req });
39
+ },
40
+ });
41
+
42
+ const res = new Response(result.body, {
43
+ status: result.status,
44
+ });
45
+
46
+ for (const [key, value] of Object.entries(result.headers ?? {})) {
47
+ if (typeof value === 'undefined') {
48
+ continue;
49
+ }
50
+
51
+ if (typeof value === 'string') {
52
+ res.headers.set(key, value);
53
+ continue;
54
+ }
55
+
56
+ for (const v of value) {
57
+ res.headers.append(key, v);
58
+ }
59
+ }
60
+ return res;
61
+ }
@@ -0,0 +1,2 @@
1
+ export * from './fetchRequestHandler';
2
+ export * from './types';
@@ -0,0 +1,28 @@
1
+ import { AnyRouter, inferRouterContext } from '../../core';
2
+ import { HTTPBaseHandlerOptions } from '../../http/internals/types';
3
+
4
+ export type FetchCreateContextFnOptions = {
5
+ req: Request;
6
+ };
7
+
8
+ export type FetchCreateContextFn<TRouter extends AnyRouter> = (opts: {
9
+ req: Request;
10
+ }) => inferRouterContext<TRouter> | Promise<inferRouterContext<TRouter>>;
11
+
12
+ export type FetchCreateContextOption<TRouter extends AnyRouter> =
13
+ unknown extends inferRouterContext<TRouter>
14
+ ? {
15
+ /**
16
+ * @link https://trpc.io/docs/context
17
+ **/
18
+ createContext?: FetchCreateContextFn<TRouter>;
19
+ }
20
+ : {
21
+ /**
22
+ * @link https://trpc.io/docs/context
23
+ **/
24
+ createContext: FetchCreateContextFn<TRouter>;
25
+ };
26
+
27
+ export type FetchHandlerOptions<TRouter extends AnyRouter> =
28
+ HTTPBaseHandlerOptions<TRouter, Request> & FetchCreateContextOption<TRouter>;
@@ -0,0 +1,18 @@
1
+ import {
2
+ CreateAWSLambdaContextOptions,
3
+ awsLambdaRequestHandler,
4
+ } from '../aws-lambda';
5
+ import { APIGatewayEvent } from '../aws-lambda/utils';
6
+
7
+ export * from '../aws-lambda';
8
+
9
+ /**
10
+ * @deprecated use `aws-lambda` instead
11
+ */
12
+ export type CreateLambdaContextOptions<T extends APIGatewayEvent> =
13
+ CreateAWSLambdaContextOptions<T>;
14
+
15
+ /**
16
+ * @deprecated use `aws-lambda` instead
17
+ */
18
+ export const lambdaRequestHandler = awsLambdaRequestHandler;