@trpc/server 11.0.0-next.92 → 11.0.0-rc.330

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 (470) hide show
  1. package/README.md +6 -6
  2. package/adapters/next-app-dir/index.d.ts +1 -0
  3. package/adapters/next-app-dir/index.js +1 -0
  4. package/dist/@trpc/server/http.d.ts +8 -0
  5. package/dist/@trpc/server/http.d.ts.map +1 -0
  6. package/dist/@trpc/server/index.d.ts +61 -0
  7. package/dist/@trpc/server/index.d.ts.map +1 -0
  8. package/dist/@trpc/server/rpc.d.ts +3 -0
  9. package/dist/@trpc/server/rpc.d.ts.map +1 -0
  10. package/dist/adapters/aws-lambda/index.d.ts +11 -2
  11. package/dist/adapters/aws-lambda/index.d.ts.map +1 -1
  12. package/dist/adapters/aws-lambda/index.js +27 -106
  13. package/dist/adapters/aws-lambda/index.mjs +14 -91
  14. package/dist/adapters/aws-lambda/utils.d.ts +14 -14
  15. package/dist/adapters/aws-lambda/utils.d.ts.map +1 -1
  16. package/dist/adapters/aws-lambda/utils.js +100 -0
  17. package/dist/adapters/aws-lambda/utils.mjs +93 -0
  18. package/dist/adapters/express.d.ts +11 -2
  19. package/dist/adapters/express.d.ts.map +1 -1
  20. package/dist/adapters/express.js +2 -14
  21. package/dist/adapters/express.mjs +2 -12
  22. package/dist/adapters/fastify/fastifyRequestHandler.d.ts +4 -4
  23. package/dist/adapters/fastify/fastifyRequestHandler.d.ts.map +1 -1
  24. package/dist/adapters/fastify/fastifyRequestHandler.js +80 -0
  25. package/dist/adapters/fastify/fastifyRequestHandler.mjs +78 -0
  26. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts +13 -4
  27. package/dist/adapters/fastify/fastifyTRPCPlugin.d.ts.map +1 -1
  28. package/dist/adapters/fastify/fastifyTRPCPlugin.js +48 -0
  29. package/dist/adapters/fastify/fastifyTRPCPlugin.mjs +46 -0
  30. package/dist/adapters/fastify/index.js +4 -126
  31. package/dist/adapters/fastify/index.mjs +2 -126
  32. package/dist/adapters/fetch/fetchRequestHandler.d.ts +11 -2
  33. package/dist/adapters/fetch/fetchRequestHandler.d.ts.map +1 -1
  34. package/dist/adapters/fetch/fetchRequestHandler.js +118 -0
  35. package/dist/adapters/fetch/fetchRequestHandler.mjs +116 -0
  36. package/dist/adapters/fetch/index.js +2 -106
  37. package/dist/adapters/fetch/index.mjs +1 -107
  38. package/dist/adapters/fetch/types.d.ts +13 -4
  39. package/dist/adapters/fetch/types.d.ts.map +1 -1
  40. package/dist/adapters/next-app-dir/formDataToObject.d.ts +2 -0
  41. package/dist/adapters/next-app-dir/formDataToObject.d.ts.map +1 -0
  42. package/dist/adapters/next-app-dir/formDataToObject.js +34 -0
  43. package/dist/adapters/next-app-dir/formDataToObject.mjs +32 -0
  44. package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts +24 -0
  45. package/dist/adapters/next-app-dir/nextAppDirCaller.d.ts.map +1 -0
  46. package/dist/adapters/next-app-dir/nextAppDirCaller.js +85 -0
  47. package/dist/adapters/next-app-dir/nextAppDirCaller.mjs +83 -0
  48. package/dist/adapters/next-app-dir/notFound.d.ts +7 -0
  49. package/dist/adapters/next-app-dir/notFound.d.ts.map +1 -0
  50. package/dist/adapters/next-app-dir/notFound.js +15 -0
  51. package/dist/adapters/next-app-dir/notFound.mjs +13 -0
  52. package/dist/adapters/next-app-dir/redirect.d.ts +18 -0
  53. package/dist/adapters/next-app-dir/redirect.d.ts.map +1 -0
  54. package/dist/adapters/next-app-dir/redirect.js +33 -0
  55. package/dist/adapters/next-app-dir/redirect.mjs +30 -0
  56. package/dist/adapters/next-app-dir/rethrowNextErrors.d.ts +6 -0
  57. package/dist/adapters/next-app-dir/rethrowNextErrors.d.ts.map +1 -0
  58. package/dist/adapters/next-app-dir/rethrowNextErrors.js +23 -0
  59. package/dist/adapters/next-app-dir/rethrowNextErrors.mjs +21 -0
  60. package/dist/adapters/next-app-dir.d.ts +4 -0
  61. package/dist/adapters/next-app-dir.d.ts.map +1 -0
  62. package/dist/adapters/next-app-dir.js +11 -0
  63. package/dist/adapters/next-app-dir.mjs +3 -0
  64. package/dist/adapters/next.d.ts +16 -3
  65. package/dist/adapters/next.d.ts.map +1 -1
  66. package/dist/adapters/next.js +19 -19
  67. package/dist/adapters/next.mjs +18 -16
  68. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.d.ts +6 -3
  69. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.d.ts.map +1 -1
  70. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.js +161 -0
  71. package/dist/adapters/node-http/content-type/form-data/fileUploadHandler.mjs +157 -0
  72. package/dist/adapters/node-http/content-type/form-data/index.d.ts +6 -8
  73. package/dist/adapters/node-http/content-type/form-data/index.d.ts.map +1 -1
  74. package/dist/adapters/node-http/content-type/form-data/index.js +21 -647
  75. package/dist/adapters/node-http/content-type/form-data/index.mjs +10 -632
  76. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts +2 -2
  77. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.d.ts.map +1 -1
  78. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.js +29 -0
  79. package/dist/adapters/node-http/content-type/form-data/memoryUploadHandler.mjs +27 -0
  80. package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts +2 -1
  81. package/dist/adapters/node-http/content-type/form-data/streamSlice.d.ts.map +1 -1
  82. package/dist/adapters/node-http/content-type/form-data/streamSlice.js +46 -0
  83. package/dist/adapters/node-http/content-type/form-data/streamSlice.mjs +44 -0
  84. package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts +2 -2
  85. package/dist/adapters/node-http/content-type/form-data/uploadHandler.d.ts.map +1 -1
  86. package/dist/adapters/node-http/content-type/form-data/uploadHandler.js +30 -0
  87. package/dist/adapters/node-http/content-type/form-data/uploadHandler.mjs +26 -0
  88. package/dist/adapters/node-http/content-type/json/getPostBody.d.ts +2 -2
  89. package/dist/adapters/node-http/content-type/json/getPostBody.d.ts.map +1 -1
  90. package/dist/adapters/node-http/content-type/json/getPostBody.js +53 -0
  91. package/dist/adapters/node-http/content-type/json/getPostBody.mjs +51 -0
  92. package/dist/adapters/node-http/content-type/json/index.js +5 -42
  93. package/dist/adapters/node-http/content-type/json/index.mjs +4 -39
  94. package/dist/adapters/node-http/index.js +1 -14
  95. package/dist/adapters/node-http/index.mjs +1 -12
  96. package/dist/adapters/node-http/internals/contentType.d.ts +3 -3
  97. package/dist/adapters/node-http/internals/contentType.d.ts.map +1 -1
  98. package/dist/{contentType-8c16408e.js → adapters/node-http/internals/contentType.js} +1 -0
  99. package/dist/{contentType-3194ed5f.mjs → adapters/node-http/internals/contentType.mjs} +2 -1
  100. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts +11 -2
  101. package/dist/adapters/node-http/nodeHTTPRequestHandler.d.ts.map +1 -1
  102. package/dist/{nodeHTTPRequestHandler-18f3370e.js → adapters/node-http/nodeHTTPRequestHandler.js} +18 -10
  103. package/dist/{nodeHTTPRequestHandler-0986c5a1.mjs → adapters/node-http/nodeHTTPRequestHandler.mjs} +18 -10
  104. package/dist/adapters/node-http/types.d.ts +18 -9
  105. package/dist/adapters/node-http/types.d.ts.map +1 -1
  106. package/dist/adapters/standalone.d.ts +11 -2
  107. package/dist/adapters/standalone.d.ts.map +1 -1
  108. package/dist/adapters/standalone.js +9 -22
  109. package/dist/adapters/standalone.mjs +9 -16
  110. package/dist/adapters/ws.d.ts +18 -17
  111. package/dist/adapters/ws.d.ts.map +1 -1
  112. package/dist/adapters/ws.js +34 -22
  113. package/dist/adapters/ws.mjs +27 -14
  114. package/dist/bundle-analysis.json +382 -495
  115. package/dist/http.d.ts +2 -0
  116. package/dist/http.d.ts.map +1 -0
  117. package/dist/http.js +17 -0
  118. package/dist/http.mjs +6 -0
  119. package/dist/index.d.ts +1 -14
  120. package/dist/index.d.ts.map +1 -1
  121. package/dist/index.js +16 -86
  122. package/dist/index.mjs +8 -81
  123. package/dist/observable/index.d.ts +4 -4
  124. package/dist/observable/index.d.ts.map +1 -1
  125. package/dist/observable/index.js +6 -149
  126. package/dist/observable/index.mjs +2 -147
  127. package/dist/observable/observable.d.ts +9 -1
  128. package/dist/observable/observable.d.ts.map +1 -1
  129. package/dist/{observable-464116ac.js → observable/observable.js} +50 -20
  130. package/dist/{observable-ade1bad8.mjs → observable/observable.mjs} +50 -21
  131. package/dist/observable/operators.d.ts +8 -0
  132. package/dist/observable/operators.d.ts.map +1 -0
  133. package/dist/observable/operators.js +99 -0
  134. package/dist/observable/operators.mjs +95 -0
  135. package/dist/observable/types.d.ts +2 -5
  136. package/dist/observable/types.d.ts.map +1 -1
  137. package/dist/rpc.d.ts +2 -0
  138. package/dist/rpc.d.ts.map +1 -0
  139. package/dist/{rpc/index.js → rpc.js} +3 -4
  140. package/dist/rpc.mjs +3 -0
  141. package/dist/shared.d.ts +26 -0
  142. package/dist/shared.d.ts.map +1 -0
  143. package/dist/shared.js +10 -0
  144. package/dist/shared.mjs +3 -0
  145. package/dist/unstable-core-do-not-import/clientish/inference.d.ts +17 -0
  146. package/dist/unstable-core-do-not-import/clientish/inference.d.ts.map +1 -0
  147. package/dist/unstable-core-do-not-import/clientish/inferrable.d.ts +32 -0
  148. package/dist/unstable-core-do-not-import/clientish/inferrable.d.ts.map +1 -0
  149. package/dist/unstable-core-do-not-import/clientish/serialize.d.ts +62 -0
  150. package/dist/unstable-core-do-not-import/clientish/serialize.d.ts.map +1 -0
  151. package/dist/{shared/createProxy/index.d.ts → unstable-core-do-not-import/createProxy.d.ts} +1 -1
  152. package/dist/unstable-core-do-not-import/createProxy.d.ts.map +1 -0
  153. package/dist/{index-784ff647.js → unstable-core-do-not-import/createProxy.js} +0 -51
  154. package/dist/unstable-core-do-not-import/createProxy.mjs +49 -0
  155. package/dist/{error → unstable-core-do-not-import/error}/TRPCError.d.ts +3 -2
  156. package/dist/unstable-core-do-not-import/error/TRPCError.d.ts.map +1 -0
  157. package/dist/{TRPCError-ae7b67e8.js → unstable-core-do-not-import/error/TRPCError.js} +25 -25
  158. package/dist/{TRPCError-816ff32e.mjs → unstable-core-do-not-import/error/TRPCError.mjs} +24 -25
  159. package/dist/{error → unstable-core-do-not-import/error}/formatter.d.ts +11 -6
  160. package/dist/unstable-core-do-not-import/error/formatter.d.ts.map +1 -0
  161. package/dist/unstable-core-do-not-import/error/formatter.js +7 -0
  162. package/dist/unstable-core-do-not-import/error/formatter.mjs +5 -0
  163. package/dist/unstable-core-do-not-import/error/getErrorShape.d.ts +15 -0
  164. package/dist/unstable-core-do-not-import/error/getErrorShape.d.ts.map +1 -0
  165. package/dist/unstable-core-do-not-import/error/getErrorShape.js +31 -0
  166. package/dist/unstable-core-do-not-import/error/getErrorShape.mjs +29 -0
  167. package/dist/unstable-core-do-not-import/http/batchStreamFormatter.d.ts.map +1 -0
  168. package/dist/{batchStreamFormatter-fc1ffb26.mjs → unstable-core-do-not-import/http/batchStreamFormatter.mjs} +1 -1
  169. package/dist/{http → unstable-core-do-not-import/http}/contentType.d.ts +3 -3
  170. package/dist/unstable-core-do-not-import/http/contentType.d.ts.map +1 -0
  171. package/dist/{contentType-90bad7bb.js → unstable-core-do-not-import/http/contentType.js} +1 -1
  172. package/dist/{contentType-93515a46.mjs → unstable-core-do-not-import/http/contentType.mjs} +2 -2
  173. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts +5 -0
  174. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.d.ts.map +1 -0
  175. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.js +52 -0
  176. package/dist/unstable-core-do-not-import/http/getHTTPStatusCode.mjs +49 -0
  177. package/dist/unstable-core-do-not-import/http/index.d.ts +12 -0
  178. package/dist/unstable-core-do-not-import/http/index.d.ts.map +1 -0
  179. package/dist/{http → unstable-core-do-not-import/http}/resolveHTTPResponse.d.ts +4 -5
  180. package/dist/unstable-core-do-not-import/http/resolveHTTPResponse.d.ts.map +1 -0
  181. package/dist/{resolveHTTPResponse-5def1b0c.js → unstable-core-do-not-import/http/resolveHTTPResponse.js} +60 -63
  182. package/dist/{resolveHTTPResponse-55c648bd.mjs → unstable-core-do-not-import/http/resolveHTTPResponse.mjs} +54 -57
  183. package/dist/unstable-core-do-not-import/http/toURL.d.ts +2 -0
  184. package/dist/unstable-core-do-not-import/http/toURL.d.ts.map +1 -0
  185. package/dist/unstable-core-do-not-import/http/toURL.js +8 -0
  186. package/dist/unstable-core-do-not-import/http/toURL.mjs +6 -0
  187. package/dist/unstable-core-do-not-import/http/types.d.ts +109 -0
  188. package/dist/unstable-core-do-not-import/http/types.d.ts.map +1 -0
  189. package/dist/unstable-core-do-not-import/initTRPC.d.ts +102 -0
  190. package/dist/unstable-core-do-not-import/initTRPC.d.ts.map +1 -0
  191. package/dist/unstable-core-do-not-import/initTRPC.js +81 -0
  192. package/dist/unstable-core-do-not-import/initTRPC.mjs +79 -0
  193. package/dist/unstable-core-do-not-import/middleware.d.ts +106 -0
  194. package/dist/unstable-core-do-not-import/middleware.d.ts.map +1 -0
  195. package/dist/unstable-core-do-not-import/middleware.js +96 -0
  196. package/dist/unstable-core-do-not-import/middleware.mjs +90 -0
  197. package/dist/{core → unstable-core-do-not-import}/parser.d.ts +3 -7
  198. package/dist/unstable-core-do-not-import/parser.d.ts.map +1 -0
  199. package/dist/unstable-core-do-not-import/parser.js +37 -0
  200. package/dist/unstable-core-do-not-import/parser.mjs +35 -0
  201. package/dist/unstable-core-do-not-import/procedure.d.ts +75 -0
  202. package/dist/unstable-core-do-not-import/procedure.d.ts.map +1 -0
  203. package/dist/unstable-core-do-not-import/procedure.js +9 -0
  204. package/dist/unstable-core-do-not-import/procedure.mjs +7 -0
  205. package/dist/unstable-core-do-not-import/procedureBuilder.d.ts +134 -0
  206. package/dist/unstable-core-do-not-import/procedureBuilder.d.ts.map +1 -0
  207. package/dist/unstable-core-do-not-import/procedureBuilder.js +204 -0
  208. package/dist/unstable-core-do-not-import/procedureBuilder.mjs +201 -0
  209. package/dist/{core/internals/config.d.ts → unstable-core-do-not-import/rootConfig.d.ts} +19 -27
  210. package/dist/unstable-core-do-not-import/rootConfig.d.ts.map +1 -0
  211. package/dist/unstable-core-do-not-import/rootConfig.js +8 -0
  212. package/dist/unstable-core-do-not-import/rootConfig.mjs +6 -0
  213. package/dist/unstable-core-do-not-import/router.d.ts +81 -0
  214. package/dist/unstable-core-do-not-import/router.d.ts.map +1 -0
  215. package/dist/unstable-core-do-not-import/router.js +168 -0
  216. package/dist/unstable-core-do-not-import/router.mjs +163 -0
  217. package/dist/{rpc → unstable-core-do-not-import/rpc}/codes.d.ts +8 -16
  218. package/dist/unstable-core-do-not-import/rpc/codes.d.ts.map +1 -0
  219. package/dist/{codes-87f6824b.js → unstable-core-do-not-import/rpc/codes.js} +19 -13
  220. package/dist/{codes-c924c3db.mjs → unstable-core-do-not-import/rpc/codes.mjs} +20 -13
  221. package/dist/{rpc → unstable-core-do-not-import/rpc}/envelopes.d.ts +6 -4
  222. package/dist/unstable-core-do-not-import/rpc/envelopes.d.ts.map +1 -0
  223. package/dist/unstable-core-do-not-import/rpc/index.d.ts +5 -0
  224. package/dist/unstable-core-do-not-import/rpc/index.d.ts.map +1 -0
  225. package/dist/unstable-core-do-not-import/rpc/parseTRPCMessage.d.ts.map +1 -0
  226. package/dist/{parseTRPCMessage-1377f305.js → unstable-core-do-not-import/rpc/parseTRPCMessage.js} +5 -2
  227. package/dist/{parseTRPCMessage-a0f17853.mjs → unstable-core-do-not-import/rpc/parseTRPCMessage.mjs} +6 -3
  228. package/dist/unstable-core-do-not-import/transformer.d.ts +101 -0
  229. package/dist/unstable-core-do-not-import/transformer.d.ts.map +1 -0
  230. package/dist/unstable-core-do-not-import/transformer.js +106 -0
  231. package/dist/unstable-core-do-not-import/transformer.mjs +101 -0
  232. package/dist/unstable-core-do-not-import/types.d.ts +103 -0
  233. package/dist/unstable-core-do-not-import/types.d.ts.map +1 -0
  234. package/dist/unstable-core-do-not-import/types.js +11 -0
  235. package/dist/unstable-core-do-not-import/types.mjs +9 -0
  236. package/dist/unstable-core-do-not-import/utils.d.ts +19 -0
  237. package/dist/unstable-core-do-not-import/utils.d.ts.map +1 -0
  238. package/dist/unstable-core-do-not-import/utils.js +37 -0
  239. package/dist/unstable-core-do-not-import/utils.mjs +32 -0
  240. package/dist/unstable-core-do-not-import.d.ts +31 -0
  241. package/dist/unstable-core-do-not-import.d.ts.map +1 -0
  242. package/dist/unstable-core-do-not-import.js +66 -0
  243. package/dist/unstable-core-do-not-import.mjs +21 -0
  244. package/package.json +51 -69
  245. package/src/@trpc/server/http.ts +27 -0
  246. package/src/@trpc/server/index.ts +100 -0
  247. package/src/@trpc/server/rpc.ts +26 -0
  248. package/src/adapters/aws-lambda/index.ts +21 -10
  249. package/src/adapters/aws-lambda/utils.ts +33 -26
  250. package/src/adapters/express.ts +18 -4
  251. package/src/adapters/fastify/fastifyRequestHandler.ts +22 -12
  252. package/src/adapters/fastify/fastifyTRPCPlugin.ts +21 -9
  253. package/src/adapters/fetch/fetchRequestHandler.ts +36 -12
  254. package/src/adapters/fetch/types.ts +18 -4
  255. package/src/adapters/next-app-dir/formDataToObject.ts +36 -0
  256. package/src/adapters/next-app-dir/nextAppDirCaller.ts +129 -0
  257. package/src/adapters/next-app-dir/notFound.ts +12 -0
  258. package/src/adapters/next-app-dir/redirect.ts +30 -0
  259. package/src/adapters/next-app-dir/rethrowNextErrors.ts +25 -0
  260. package/src/adapters/next-app-dir.ts +3 -0
  261. package/src/adapters/next.ts +30 -14
  262. package/src/adapters/node-http/content-type/form-data/fileUploadHandler.ts +11 -4
  263. package/src/adapters/node-http/content-type/form-data/index.ts +18 -18
  264. package/src/adapters/node-http/content-type/form-data/memoryUploadHandler.ts +3 -2
  265. package/src/adapters/node-http/content-type/form-data/streamSlice.ts +7 -2
  266. package/src/adapters/node-http/content-type/form-data/uploadHandler.ts +2 -2
  267. package/src/adapters/node-http/content-type/json/getPostBody.ts +20 -3
  268. package/src/adapters/node-http/content-type/json/index.ts +1 -1
  269. package/src/adapters/node-http/internals/contentType.ts +5 -3
  270. package/src/adapters/node-http/nodeHTTPRequestHandler.ts +28 -16
  271. package/src/adapters/node-http/types.ts +24 -9
  272. package/src/adapters/standalone.ts +22 -8
  273. package/src/adapters/ws.ts +68 -39
  274. package/src/http.ts +1 -0
  275. package/src/index.ts +1 -20
  276. package/src/observable/index.ts +10 -4
  277. package/src/observable/observable.ts +63 -3
  278. package/src/observable/operators.ts +114 -0
  279. package/src/observable/types.ts +1 -5
  280. package/src/rpc.ts +1 -0
  281. package/src/shared.ts +26 -0
  282. package/src/unstable-core-do-not-import/clientish/inference.ts +60 -0
  283. package/src/unstable-core-do-not-import/clientish/inferrable.ts +49 -0
  284. package/src/unstable-core-do-not-import/clientish/serialize.ts +122 -0
  285. package/src/{error → unstable-core-do-not-import/error}/TRPCError.ts +33 -27
  286. package/src/{error → unstable-core-do-not-import/error}/formatter.ts +12 -19
  287. package/src/{shared → unstable-core-do-not-import/error}/getErrorShape.ts +8 -8
  288. package/src/{http → unstable-core-do-not-import/http}/contentType.ts +4 -4
  289. package/src/{http → unstable-core-do-not-import/http}/getHTTPStatusCode.ts +8 -8
  290. package/src/unstable-core-do-not-import/http/index.ts +29 -0
  291. package/src/{http → unstable-core-do-not-import/http}/resolveHTTPResponse.ts +69 -69
  292. package/src/unstable-core-do-not-import/http/toURL.ts +7 -0
  293. package/src/unstable-core-do-not-import/http/types.ts +126 -0
  294. package/src/unstable-core-do-not-import/initTRPC.ts +151 -0
  295. package/src/unstable-core-do-not-import/middleware.ts +238 -0
  296. package/src/unstable-core-do-not-import/parser.ts +94 -0
  297. package/src/unstable-core-do-not-import/procedure.ts +94 -0
  298. package/src/unstable-core-do-not-import/procedureBuilder.ts +623 -0
  299. package/src/{core/internals/config.ts → unstable-core-do-not-import/rootConfig.ts} +22 -33
  300. package/src/unstable-core-do-not-import/router.ts +363 -0
  301. package/src/{rpc → unstable-core-do-not-import/rpc}/codes.ts +30 -3
  302. package/src/{rpc → unstable-core-do-not-import/rpc}/envelopes.ts +6 -9
  303. package/src/unstable-core-do-not-import/rpc/index.ts +21 -0
  304. package/src/{rpc → unstable-core-do-not-import/rpc}/parseTRPCMessage.ts +4 -3
  305. package/src/unstable-core-do-not-import/transformer.ts +194 -0
  306. package/src/unstable-core-do-not-import/types.ts +157 -0
  307. package/src/unstable-core-do-not-import/utils.ts +43 -0
  308. package/src/unstable-core-do-not-import.ts +30 -0
  309. package/unstable-core-do-not-import/index.d.ts +1 -0
  310. package/unstable-core-do-not-import/index.js +1 -0
  311. package/dist/TRPCError-efecb077.js +0 -63
  312. package/dist/batchStreamFormatter-2c1405a1.js +0 -31
  313. package/dist/codes-e5bb4d58.js +0 -48
  314. package/dist/config-5de7eae5.js +0 -10
  315. package/dist/config-60fc2667.js +0 -7
  316. package/dist/config-ab4c1c6b.mjs +0 -5
  317. package/dist/contentType-24c44bba.js +0 -5
  318. package/dist/contentType-9940f5d7.js +0 -58
  319. package/dist/core/index.d.ts +0 -9
  320. package/dist/core/index.d.ts.map +0 -1
  321. package/dist/core/initTRPC.d.ts +0 -105
  322. package/dist/core/initTRPC.d.ts.map +0 -1
  323. package/dist/core/internals/builderTypes.d.ts +0 -11
  324. package/dist/core/internals/builderTypes.d.ts.map +0 -1
  325. package/dist/core/internals/config.d.ts.map +0 -1
  326. package/dist/core/internals/getParseFn.d.ts +0 -4
  327. package/dist/core/internals/getParseFn.d.ts.map +0 -1
  328. package/dist/core/internals/mergeRouters.d.ts +0 -15
  329. package/dist/core/internals/mergeRouters.d.ts.map +0 -1
  330. package/dist/core/internals/mergeWithoutOverrides.d.ts +0 -5
  331. package/dist/core/internals/mergeWithoutOverrides.d.ts.map +0 -1
  332. package/dist/core/internals/omitPrototype.d.ts +0 -6
  333. package/dist/core/internals/omitPrototype.d.ts.map +0 -1
  334. package/dist/core/internals/procedureBuilder.d.ts +0 -113
  335. package/dist/core/internals/procedureBuilder.d.ts.map +0 -1
  336. package/dist/core/internals/utils.d.ts +0 -51
  337. package/dist/core/internals/utils.d.ts.map +0 -1
  338. package/dist/core/middleware.d.ts +0 -158
  339. package/dist/core/middleware.d.ts.map +0 -1
  340. package/dist/core/parser.d.ts.map +0 -1
  341. package/dist/core/procedure.d.ts +0 -72
  342. package/dist/core/procedure.d.ts.map +0 -1
  343. package/dist/core/router.d.ts +0 -65
  344. package/dist/core/router.d.ts.map +0 -1
  345. package/dist/core/types.d.ts +0 -24
  346. package/dist/core/types.d.ts.map +0 -1
  347. package/dist/error/TRPCError.d.ts.map +0 -1
  348. package/dist/error/formatter.d.ts.map +0 -1
  349. package/dist/error/utils.d.ts +0 -9
  350. package/dist/error/utils.d.ts.map +0 -1
  351. package/dist/http/batchStreamFormatter.d.ts.map +0 -1
  352. package/dist/http/contentType.d.ts.map +0 -1
  353. package/dist/http/getHTTPStatusCode.d.ts +0 -24
  354. package/dist/http/getHTTPStatusCode.d.ts.map +0 -1
  355. package/dist/http/index.d.ts +0 -5
  356. package/dist/http/index.d.ts.map +0 -1
  357. package/dist/http/index.js +0 -21
  358. package/dist/http/index.mjs +0 -9
  359. package/dist/http/internals/types.d.ts +0 -32
  360. package/dist/http/internals/types.d.ts.map +0 -1
  361. package/dist/http/resolveHTTPResponse.d.ts.map +0 -1
  362. package/dist/http/types.d.ts +0 -46
  363. package/dist/http/types.d.ts.map +0 -1
  364. package/dist/index-46cb3130.js +0 -94
  365. package/dist/index-f91d720c.mjs +0 -97
  366. package/dist/internals/invert.d.ts +0 -12
  367. package/dist/internals/invert.d.ts.map +0 -1
  368. package/dist/internals/types.d.ts +0 -26
  369. package/dist/internals/types.d.ts.map +0 -1
  370. package/dist/nodeHTTPRequestHandler-388f5fce.js +0 -107
  371. package/dist/observable/internals/identity.d.ts +0 -2
  372. package/dist/observable/internals/identity.d.ts.map +0 -1
  373. package/dist/observable/internals/observableToPromise.d.ts +0 -10
  374. package/dist/observable/internals/observableToPromise.d.ts.map +0 -1
  375. package/dist/observable/internals/pipe.d.ts +0 -4
  376. package/dist/observable/internals/pipe.d.ts.map +0 -1
  377. package/dist/observable/operators/index.d.ts +0 -4
  378. package/dist/observable/operators/index.d.ts.map +0 -1
  379. package/dist/observable/operators/map.d.ts +0 -3
  380. package/dist/observable/operators/map.d.ts.map +0 -1
  381. package/dist/observable/operators/share.d.ts +0 -6
  382. package/dist/observable/operators/share.d.ts.map +0 -1
  383. package/dist/observable/operators/tap.d.ts +0 -3
  384. package/dist/observable/operators/tap.d.ts.map +0 -1
  385. package/dist/observable-15588f28.js +0 -83
  386. package/dist/parseTRPCMessage-95955211.js +0 -63
  387. package/dist/resolveHTTPResponse-8d474952.js +0 -267
  388. package/dist/router-3c22fe56.js +0 -159
  389. package/dist/router-5274e533.mjs +0 -153
  390. package/dist/router-a1635eab.js +0 -147
  391. package/dist/rpc/codes.d.ts.map +0 -1
  392. package/dist/rpc/envelopes.d.ts.map +0 -1
  393. package/dist/rpc/index.d.ts +0 -4
  394. package/dist/rpc/index.d.ts.map +0 -1
  395. package/dist/rpc/index.mjs +0 -2
  396. package/dist/rpc/parseTRPCMessage.d.ts.map +0 -1
  397. package/dist/shared/createProxy/index.d.ts.map +0 -1
  398. package/dist/shared/getErrorShape.d.ts +0 -15
  399. package/dist/shared/getErrorShape.d.ts.map +0 -1
  400. package/dist/shared/index.d.ts +0 -7
  401. package/dist/shared/index.d.ts.map +0 -1
  402. package/dist/shared/index.js +0 -14
  403. package/dist/shared/index.mjs +0 -3
  404. package/dist/shared/internal/serialize.d.ts +0 -30
  405. package/dist/shared/internal/serialize.d.ts.map +0 -1
  406. package/dist/shared/jsonify.d.ts +0 -11
  407. package/dist/shared/jsonify.d.ts.map +0 -1
  408. package/dist/shared/transformTRPCResponse.d.ts +0 -9
  409. package/dist/shared/transformTRPCResponse.d.ts.map +0 -1
  410. package/dist/shared/types.d.ts +0 -6
  411. package/dist/shared/types.d.ts.map +0 -1
  412. package/dist/transformTRPCResponse-1153b421.mjs +0 -53
  413. package/dist/transformTRPCResponse-20ce3b68.js +0 -54
  414. package/dist/transformTRPCResponse-e65f34e9.js +0 -56
  415. package/dist/transformer.d.ts +0 -74
  416. package/dist/transformer.d.ts.map +0 -1
  417. package/dist/types.d.ts +0 -83
  418. package/dist/types.d.ts.map +0 -1
  419. package/dist/unstableInternalsExport-10cc2bae.mjs +0 -353
  420. package/dist/unstableInternalsExport-a064a7dd.js +0 -349
  421. package/dist/unstableInternalsExport-bf8496ea.js +0 -363
  422. package/dist/unstableInternalsExport.d.ts +0 -11
  423. package/dist/unstableInternalsExport.d.ts.map +0 -1
  424. package/dist/unstableInternalsExport.js +0 -16
  425. package/dist/unstableInternalsExport.mjs +0 -5
  426. package/src/core/index.ts +0 -28
  427. package/src/core/initTRPC.ts +0 -169
  428. package/src/core/internals/builderTypes.ts +0 -11
  429. package/src/core/internals/getParseFn.ts +0 -43
  430. package/src/core/internals/mergeRouters.ts +0 -90
  431. package/src/core/internals/mergeWithoutOverrides.ts +0 -19
  432. package/src/core/internals/omitPrototype.ts +0 -9
  433. package/src/core/internals/procedureBuilder.ts +0 -394
  434. package/src/core/internals/utils.ts +0 -84
  435. package/src/core/middleware.ts +0 -295
  436. package/src/core/parser.ts +0 -57
  437. package/src/core/procedure.ts +0 -88
  438. package/src/core/router.ts +0 -226
  439. package/src/core/types.ts +0 -67
  440. package/src/error/utils.ts +0 -23
  441. package/src/http/index.ts +0 -4
  442. package/src/http/internals/types.ts +0 -40
  443. package/src/http/types.ts +0 -51
  444. package/src/internals/invert.ts +0 -21
  445. package/src/internals/types.ts +0 -27
  446. package/src/observable/internals/identity.ts +0 -3
  447. package/src/observable/internals/observableToPromise.ts +0 -49
  448. package/src/observable/internals/pipe.ts +0 -23
  449. package/src/observable/operators/index.ts +0 -3
  450. package/src/observable/operators/map.ts +0 -25
  451. package/src/observable/operators/share.ts +0 -65
  452. package/src/observable/operators/tap.ts +0 -26
  453. package/src/rpc/index.ts +0 -3
  454. package/src/shared/index.ts +0 -10
  455. package/src/shared/internal/serialize.ts +0 -65
  456. package/src/shared/jsonify.ts +0 -22
  457. package/src/shared/transformTRPCResponse.ts +0 -40
  458. package/src/shared/types.ts +0 -9
  459. package/src/transformer.ts +0 -94
  460. package/src/types.ts +0 -125
  461. package/src/unstableInternalsExport.ts +0 -10
  462. package/subscription/index.d.ts +0 -1
  463. package/subscription/index.js +0 -1
  464. package/unstableInternalsExport/index.d.ts +0 -1
  465. package/unstableInternalsExport/index.js +0 -1
  466. /package/dist/{http → unstable-core-do-not-import/http}/batchStreamFormatter.d.ts +0 -0
  467. /package/dist/{batchStreamFormatter-93cdcdd4.js → unstable-core-do-not-import/http/batchStreamFormatter.js} +0 -0
  468. /package/dist/{rpc → unstable-core-do-not-import/rpc}/parseTRPCMessage.d.ts +0 -0
  469. /package/src/{shared/createProxy/index.ts → unstable-core-do-not-import/createProxy.ts} +0 -0
  470. /package/src/{http → unstable-core-do-not-import/http}/batchStreamFormatter.ts +0 -0
@@ -1,90 +0,0 @@
1
- import { defaultFormatter } from '../../error/formatter';
2
- import { CombinedDataTransformer, defaultTransformer } from '../../transformer';
3
- import {
4
- AnyRouter,
5
- AnyRouterDef,
6
- createRouterFactory,
7
- Router,
8
- RouterDef,
9
- } from '../router';
10
- import { mergeWithoutOverrides } from './mergeWithoutOverrides';
11
-
12
- /**
13
- * @internal
14
- */
15
- export type MergeRouters<
16
- TRouters extends AnyRouter[],
17
- TRouterDef extends AnyRouterDef = RouterDef<
18
- TRouters[0]['_def']['_config'],
19
- // eslint-disable-next-line @typescript-eslint/ban-types
20
- {}
21
- >,
22
- > = TRouters extends [
23
- infer Head extends AnyRouter,
24
- ...infer Tail extends AnyRouter[],
25
- ]
26
- ? MergeRouters<
27
- Tail,
28
- {
29
- _config: TRouterDef['_config'];
30
- router: true;
31
- procedures: Head['_def']['procedures'] & TRouterDef['procedures'];
32
- record: Head['_def']['record'] & TRouterDef['record'];
33
- }
34
- >
35
- : Router<TRouterDef> & TRouterDef['record'];
36
-
37
- export function mergeRouters<TRouters extends AnyRouter[]>(
38
- ...routerList: [...TRouters]
39
- ): MergeRouters<TRouters> {
40
- const record = mergeWithoutOverrides(
41
- {},
42
- ...routerList.map((r) => r._def.record),
43
- );
44
- const errorFormatter = routerList.reduce(
45
- (currentErrorFormatter, nextRouter) => {
46
- if (
47
- nextRouter._def._config.errorFormatter &&
48
- nextRouter._def._config.errorFormatter !== defaultFormatter
49
- ) {
50
- if (
51
- currentErrorFormatter !== defaultFormatter &&
52
- currentErrorFormatter !== nextRouter._def._config.errorFormatter
53
- ) {
54
- throw new Error('You seem to have several error formatters');
55
- }
56
- return nextRouter._def._config.errorFormatter;
57
- }
58
- return currentErrorFormatter;
59
- },
60
- defaultFormatter,
61
- );
62
-
63
- const transformer = routerList.reduce((prev, current) => {
64
- if (
65
- current._def._config.transformer &&
66
- current._def._config.transformer !== defaultTransformer
67
- ) {
68
- if (
69
- prev !== defaultTransformer &&
70
- prev !== current._def._config.transformer
71
- ) {
72
- throw new Error('You seem to have several transformers');
73
- }
74
- return current._def._config.transformer;
75
- }
76
- return prev;
77
- }, defaultTransformer as CombinedDataTransformer);
78
-
79
- const router = createRouterFactory({
80
- errorFormatter,
81
- transformer,
82
- isDev: routerList.some((r) => r._def._config.isDev),
83
- allowOutsideOfServer: routerList.some(
84
- (r) => r._def._config.allowOutsideOfServer,
85
- ),
86
- isServer: routerList.some((r) => r._def._config.isServer),
87
- $types: routerList[0]?._def._config.$types as any,
88
- })(record);
89
- return router as any;
90
- }
@@ -1,19 +0,0 @@
1
- /**
2
- * Ensures there are no duplicate keys when building a procedure.
3
- */
4
- export function mergeWithoutOverrides<TType extends Record<string, unknown>>(
5
- obj1: TType,
6
- ...objs: Partial<TType>[]
7
- ): TType {
8
- const newObj: TType = Object.assign(Object.create(null), obj1);
9
-
10
- for (const overrides of objs) {
11
- for (const key in overrides) {
12
- if (key in newObj && newObj[key] !== overrides[key]) {
13
- throw new Error(`Duplicate key ${key}`);
14
- }
15
- newObj[key as keyof TType] = overrides[key] as TType[keyof TType];
16
- }
17
- }
18
- return newObj;
19
- }
@@ -1,9 +0,0 @@
1
- /**
2
- * Create an object without inheriting anything from `Object.prototype`
3
- * @internal
4
- */
5
- export function omitPrototype<TObj extends Record<string, unknown>>(
6
- obj: TObj,
7
- ): TObj {
8
- return Object.assign(Object.create(null), obj);
9
- }
@@ -1,394 +0,0 @@
1
- import { getTRPCErrorFromUnknown, TRPCError } from '../../error/TRPCError';
2
- import { MaybePromise, Simplify } from '../../types';
3
- import {
4
- createInputMiddleware,
5
- createOutputMiddleware,
6
- MiddlewareBuilder,
7
- MiddlewareFunction,
8
- MiddlewareResult,
9
- } from '../middleware';
10
- import { inferParser, Parser } from '../parser';
11
- import {
12
- AnyMutationProcedure,
13
- AnyProcedure,
14
- AnyProcedureParams,
15
- AnyQueryProcedure,
16
- AnySubscriptionProcedure,
17
- MutationProcedure,
18
- ProcedureParams,
19
- QueryProcedure,
20
- SubscriptionProcedure,
21
- } from '../procedure';
22
- import { ProcedureType } from '../types';
23
- import { AnyProcedureBuilderParams } from './builderTypes';
24
- import { AnyRootConfig } from './config';
25
- import { getParseFn } from './getParseFn';
26
- import { mergeWithoutOverrides } from './mergeWithoutOverrides';
27
- import {
28
- DefaultValue,
29
- GetRawInputFn,
30
- middlewareMarker,
31
- Overwrite,
32
- ResolveOptions,
33
- UnsetMarker,
34
- } from './utils';
35
-
36
- type CreateProcedureReturnInput<
37
- TPrev extends ProcedureParams<AnyProcedureParams>,
38
- TNext extends ProcedureParams<AnyProcedureParams>,
39
- > = ProcedureBuilder<{
40
- _config: TPrev['_config'];
41
- _meta: TPrev['_meta'];
42
- _ctx_out: Overwrite<TPrev['_ctx_out'], TNext['_ctx_out']>;
43
- _input_in: DefaultValue<TNext['_input_in'], TPrev['_input_in']>;
44
- _input_out: UnsetMarker extends TNext['_input_out']
45
- ? TPrev['_input_out']
46
- : Overwrite<TPrev['_input_out'], TNext['_input_out']>;
47
- _output_in: DefaultValue<TNext['_output_in'], TPrev['_output_in']>;
48
- _output_out: DefaultValue<TNext['_output_out'], TPrev['_output_out']>;
49
- }>;
50
-
51
- type OverwriteIfDefined<TType, TWith> = UnsetMarker extends TType
52
- ? TWith
53
- : Simplify<TType & TWith>;
54
-
55
- type ErrorMessage<TMessage extends string> = TMessage;
56
-
57
- export type ProcedureBuilderDef<TParams extends AnyProcedureBuilderParams> = {
58
- procedure: true;
59
- inputs: Parser[];
60
- output?: Parser;
61
- meta?: TParams['_meta'];
62
- resolver?: ProcedureBuilderResolver;
63
- middlewares: ProcedureBuilderMiddleware[];
64
- mutation?: boolean;
65
- query?: boolean;
66
- subscription?: boolean;
67
- };
68
-
69
- export type AnyProcedureBuilderDef = ProcedureBuilderDef<any>;
70
-
71
- export interface ProcedureBuilder<TParams extends AnyProcedureBuilderParams> {
72
- /**
73
- * Add an input parser to the procedure.
74
- */
75
- input<$Parser extends Parser>(
76
- schema: TParams['_input_out'] extends UnsetMarker
77
- ? $Parser
78
- : inferParser<$Parser>['out'] extends Record<string, unknown> | undefined
79
- ? TParams['_input_out'] extends Record<string, unknown> | undefined
80
- ? undefined extends inferParser<$Parser>['out'] // if current is optional the previous must be too
81
- ? undefined extends TParams['_input_out']
82
- ? $Parser
83
- : ErrorMessage<'Cannot chain an optional parser to a required parser'>
84
- : $Parser
85
- : ErrorMessage<'All input parsers did not resolve to an object'>
86
- : ErrorMessage<'All input parsers did not resolve to an object'>,
87
- ): ProcedureBuilder<{
88
- _config: TParams['_config'];
89
- _meta: TParams['_meta'];
90
- _ctx_out: TParams['_ctx_out'];
91
- _input_in: OverwriteIfDefined<
92
- TParams['_input_in'],
93
- inferParser<$Parser>['in']
94
- >;
95
- _input_out: OverwriteIfDefined<
96
- TParams['_input_out'],
97
- inferParser<$Parser>['out']
98
- >;
99
-
100
- _output_in: TParams['_output_in'];
101
- _output_out: TParams['_output_out'];
102
- }>;
103
- /**
104
- * Add an output parser to the procedure.
105
- */
106
- output<$Parser extends Parser>(
107
- schema: $Parser,
108
- ): ProcedureBuilder<{
109
- _config: TParams['_config'];
110
- _meta: TParams['_meta'];
111
- _ctx_out: TParams['_ctx_out'];
112
- _input_in: TParams['_input_in'];
113
- _input_out: TParams['_input_out'];
114
- _output_in: inferParser<$Parser>['in'];
115
- _output_out: inferParser<$Parser>['out'];
116
- }>;
117
- /**
118
- * Add a meta data to the procedure.
119
- */
120
- meta(meta: TParams['_meta']): ProcedureBuilder<TParams>;
121
- /**
122
- * Add a middleware to the procedure.
123
- */
124
- use<$Params extends ProcedureParams<AnyProcedureParams>>(
125
- fn:
126
- | MiddlewareBuilder<TParams, $Params>
127
- | MiddlewareFunction<TParams, $Params>,
128
- ): CreateProcedureReturnInput<TParams, $Params>;
129
- /**
130
- * Query procedure
131
- */
132
- query<$Output>(
133
- resolver: (
134
- opts: ResolveOptions<TParams>,
135
- ) => MaybePromise<DefaultValue<TParams['_output_in'], $Output>>,
136
- ): QueryProcedure<{
137
- input: DefaultValue<TParams['_input_in'], void>;
138
- output: DefaultValue<TParams['_output_out'], $Output>;
139
- }>;
140
-
141
- /**
142
- * Mutation procedure
143
- */
144
- mutation<$Output>(
145
- resolver: (
146
- opts: ResolveOptions<TParams>,
147
- ) => MaybePromise<DefaultValue<TParams['_output_in'], $Output>>,
148
- ): MutationProcedure<{
149
- input: DefaultValue<TParams['_input_in'], void>;
150
- output: DefaultValue<TParams['_output_out'], $Output>;
151
- }>;
152
-
153
- /**
154
- * Mutation procedure
155
- */
156
- subscription<$Output>(
157
- resolver: (
158
- opts: ResolveOptions<TParams>,
159
- ) => MaybePromise<DefaultValue<TParams['_output_in'], $Output>>,
160
- ): SubscriptionProcedure<{
161
- input: DefaultValue<TParams['_input_in'], void>;
162
- output: DefaultValue<TParams['_output_out'], $Output>;
163
- }>;
164
- /**
165
- * @internal
166
- */
167
- _def: ProcedureBuilderDef<TParams>;
168
- }
169
-
170
- type AnyProcedureBuilder = ProcedureBuilder<any>;
171
-
172
- export type ProcedureBuilderMiddleware = MiddlewareFunction<any, any>;
173
-
174
- export type ProcedureBuilderResolver = (
175
- opts: ResolveOptions<any>,
176
- ) => Promise<unknown>;
177
-
178
- function createNewBuilder(
179
- def1: AnyProcedureBuilderDef,
180
- def2: Partial<AnyProcedureBuilderDef>,
181
- ) {
182
- const { middlewares = [], inputs, meta, ...rest } = def2;
183
-
184
- // TODO: maybe have a fn here to warn about calls
185
- return createBuilder({
186
- ...mergeWithoutOverrides(def1, rest),
187
- inputs: [...def1.inputs, ...(inputs ?? [])],
188
- middlewares: [...def1.middlewares, ...middlewares],
189
- meta: def1.meta && meta ? { ...def1.meta, ...meta } : meta ?? def1.meta,
190
- });
191
- }
192
-
193
- export function createBuilder<TConfig extends AnyRootConfig>(
194
- initDef: Partial<AnyProcedureBuilderDef> = {},
195
- ): ProcedureBuilder<{
196
- _config: TConfig;
197
- _ctx_out: TConfig['$types']['ctx'];
198
- _input_in: UnsetMarker;
199
- _input_out: UnsetMarker;
200
- _output_in: UnsetMarker;
201
- _output_out: UnsetMarker;
202
- _meta: TConfig['$types']['meta'];
203
- }> {
204
- const _def: AnyProcedureBuilderDef = {
205
- procedure: true,
206
- inputs: [],
207
- middlewares: [],
208
- ...initDef,
209
- };
210
-
211
- return {
212
- _def,
213
- input(input) {
214
- const parser = getParseFn(input);
215
- return createNewBuilder(_def, {
216
- inputs: [input],
217
- middlewares: [createInputMiddleware(parser)],
218
- }) as AnyProcedureBuilder;
219
- },
220
- output(output: Parser) {
221
- const parseOutput = getParseFn(output);
222
- return createNewBuilder(_def, {
223
- output,
224
- middlewares: [createOutputMiddleware(parseOutput)],
225
- }) as AnyProcedureBuilder;
226
- },
227
- meta(meta) {
228
- return createNewBuilder(_def, {
229
- meta: meta as Record<string, unknown>,
230
- }) as AnyProcedureBuilder;
231
- },
232
- use(middlewareBuilderOrFn) {
233
- // Distinguish between a middleware builder and a middleware function
234
- const middlewares =
235
- '_middlewares' in middlewareBuilderOrFn
236
- ? middlewareBuilderOrFn._middlewares
237
- : [middlewareBuilderOrFn];
238
-
239
- return createNewBuilder(_def, {
240
- middlewares: middlewares as ProcedureBuilderMiddleware[],
241
- }) as AnyProcedureBuilder;
242
- },
243
- query(resolver) {
244
- return createResolver(
245
- { ..._def, type: 'query' },
246
- resolver,
247
- ) as AnyQueryProcedure;
248
- },
249
- mutation(resolver) {
250
- return createResolver(
251
- { ..._def, type: 'mutation' },
252
- resolver,
253
- ) as AnyMutationProcedure;
254
- },
255
- subscription(resolver) {
256
- return createResolver(
257
- { ..._def, type: 'subscription' },
258
- resolver,
259
- ) as AnySubscriptionProcedure;
260
- },
261
- };
262
- }
263
-
264
- function createResolver(
265
- _def: AnyProcedureBuilderDef & { type: ProcedureType },
266
- resolver: (opts: ResolveOptions<any>) => MaybePromise<any>,
267
- ) {
268
- const finalBuilder = createNewBuilder(_def, {
269
- resolver,
270
- middlewares: [
271
- async function resolveMiddleware(opts) {
272
- const data = await resolver(opts);
273
- return {
274
- marker: middlewareMarker,
275
- ok: true,
276
- data,
277
- ctx: opts.ctx,
278
- } as const;
279
- },
280
- ],
281
- });
282
-
283
- return createProcedureCaller(finalBuilder._def);
284
- }
285
-
286
- /**
287
- * @internal
288
- */
289
- export interface ProcedureCallOptions {
290
- ctx: unknown;
291
- getRawInput: GetRawInputFn;
292
- input?: unknown;
293
- path: string;
294
- type: ProcedureType;
295
- }
296
-
297
- const codeblock = `
298
- If you want to call this function on the server, you do the following:
299
- This is a client-only function.
300
-
301
- const caller = appRouter.createCaller({
302
- /* ... your context */
303
- });
304
-
305
- const result = await caller.call('myProcedure', input);
306
- `.trim();
307
-
308
- function createProcedureCaller(_def: AnyProcedureBuilderDef): AnyProcedure {
309
- async function procedure(opts: ProcedureCallOptions) {
310
- // is direct server-side call
311
- if (!opts || !('getRawInput' in opts)) {
312
- throw new Error(codeblock);
313
- }
314
-
315
- // run the middlewares recursively with the resolver as the last one
316
- const callRecursive = async (
317
- callOpts: {
318
- ctx: any;
319
- index: number;
320
- input?: unknown;
321
- getRawInput?: GetRawInputFn;
322
- } = {
323
- index: 0,
324
- ctx: opts.ctx,
325
- },
326
- ): Promise<MiddlewareResult<any>> => {
327
- try {
328
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
329
- const middleware = _def.middlewares[callOpts.index]!;
330
- const result = await middleware({
331
- ctx: callOpts.ctx,
332
- type: opts.type,
333
- path: opts.path,
334
- getRawInput: callOpts.getRawInput ?? opts.getRawInput,
335
- meta: _def.meta,
336
- input: callOpts.input,
337
- next(_nextOpts?: any) {
338
- const nextOpts = _nextOpts as
339
- | {
340
- ctx?: Record<string, unknown>;
341
- input?: unknown;
342
- getRawInput?: GetRawInputFn;
343
- }
344
- | undefined;
345
-
346
- return callRecursive({
347
- index: callOpts.index + 1,
348
- ctx:
349
- nextOpts && 'ctx' in nextOpts
350
- ? { ...callOpts.ctx, ...nextOpts.ctx }
351
- : callOpts.ctx,
352
- input:
353
- nextOpts && 'input' in nextOpts
354
- ? nextOpts.input
355
- : callOpts.input,
356
- getRawInput:
357
- nextOpts && 'getRawInput' in nextOpts
358
- ? nextOpts.getRawInput
359
- : callOpts.getRawInput,
360
- });
361
- },
362
- });
363
- return result;
364
- } catch (cause) {
365
- return {
366
- ok: false,
367
- error: getTRPCErrorFromUnknown(cause),
368
- marker: middlewareMarker,
369
- };
370
- }
371
- };
372
-
373
- // there's always at least one "next" since we wrap this.resolver in a middleware
374
- const result = await callRecursive();
375
-
376
- if (!result) {
377
- throw new TRPCError({
378
- code: 'INTERNAL_SERVER_ERROR',
379
- message:
380
- 'No result from middlewares - did you forget to `return next()`?',
381
- });
382
- }
383
- if (!result.ok) {
384
- // re-throw original error
385
- throw result.error;
386
- }
387
- return result.data;
388
- }
389
-
390
- procedure._def = _def;
391
-
392
- // FIXME typecast shouldn't be needed - fixittt
393
- return procedure as unknown as AnyProcedure;
394
- }
@@ -1,84 +0,0 @@
1
- import { Simplify } from '../../types';
2
- import { AnyProcedureParams, ProcedureParams } from '../procedure';
3
-
4
- /**
5
- * @internal
6
- */
7
- export type Overwrite<TType, TWith> = TType extends any
8
- ? TWith extends any
9
- ? {
10
- [K in keyof TType | keyof TWith]: K extends keyof TWith
11
- ? TWith[K]
12
- : K extends keyof TType
13
- ? TType[K]
14
- : never;
15
- }
16
- : never
17
- : never;
18
-
19
- /**
20
- * @internal
21
- */
22
- export type DefaultValue<TValue, TFallback> = UnsetMarker extends TValue
23
- ? TFallback
24
- : TValue;
25
-
26
- /**
27
- * @internal
28
- */
29
- export const middlewareMarker = 'middlewareMarker' as 'middlewareMarker' & {
30
- __brand: 'middlewareMarker';
31
- };
32
-
33
- /**
34
- * @internal
35
- */
36
- export type MiddlewareMarker = typeof middlewareMarker;
37
-
38
- /**
39
- * @internal
40
- */
41
- export const unsetMarker = Symbol('unsetMarker');
42
- /**
43
- * @internal
44
- */
45
- export type UnsetMarker = typeof unsetMarker;
46
-
47
- /**
48
- * @internal
49
- */
50
- export interface ResolveOptions<
51
- TParams extends ProcedureParams<AnyProcedureParams>,
52
- > {
53
- ctx: Simplify<
54
- Overwrite<TParams['_config']['$types']['ctx'], TParams['_ctx_out']>
55
- >;
56
- input: TParams['_input_out'] extends UnsetMarker
57
- ? undefined
58
- : TParams['_input_out'];
59
- }
60
-
61
- /**
62
- * @internal
63
- */
64
- export type ValidateShape<TActualShape, TExpectedShape> =
65
- TActualShape extends TExpectedShape
66
- ? Exclude<keyof TActualShape, keyof TExpectedShape> extends never
67
- ? TActualShape
68
- : TExpectedShape
69
- : never;
70
-
71
- /**
72
- * @internal
73
- */
74
- export type PickFirstDefined<TType, TPick> = undefined extends TType
75
- ? undefined extends TPick
76
- ? never
77
- : TPick
78
- : TType;
79
-
80
- /**
81
- * @internal
82
- * Returns the raw input type of a procedure
83
- */
84
- export type GetRawInputFn = () => Promise<unknown>;