@trpc/client 11.3.1 → 11.3.2-canary.2

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 (238) hide show
  1. package/dist/TRPCClientError-CGgRtttT.cjs +67 -0
  2. package/dist/TRPCClientError-COkhCKf3.mjs +56 -0
  3. package/dist/TRPCClientError-COkhCKf3.mjs.map +1 -0
  4. package/dist/chunk-DWy1uDak.cjs +39 -0
  5. package/dist/httpBatchLink-CIC9PZ_Z.cjs +267 -0
  6. package/dist/httpBatchLink-DIfnmmcu.mjs +238 -0
  7. package/dist/httpBatchLink-DIfnmmcu.mjs.map +1 -0
  8. package/dist/httpBatchLink.d-BN2Iw_cK.d.mts +33 -0
  9. package/dist/httpBatchLink.d-BN2Iw_cK.d.mts.map +1 -0
  10. package/dist/httpBatchLink.d-CLAuJKNV.d.cts +33 -0
  11. package/dist/httpBatchLink.d-CLAuJKNV.d.cts.map +1 -0
  12. package/dist/httpLink-9bpwQ15c.mjs +90 -0
  13. package/dist/httpLink-9bpwQ15c.mjs.map +1 -0
  14. package/dist/httpLink-BbVj_TgM.cjs +113 -0
  15. package/dist/httpLink.d-CTSOARfE.d.mts +23 -0
  16. package/dist/httpLink.d-CTSOARfE.d.mts.map +1 -0
  17. package/dist/httpLink.d-yMKfOlTU.d.cts +23 -0
  18. package/dist/httpLink.d-yMKfOlTU.d.cts.map +1 -0
  19. package/dist/httpUtils-3pbQzhUL.mjs +123 -0
  20. package/dist/httpUtils-3pbQzhUL.mjs.map +1 -0
  21. package/dist/httpUtils-Buf6jCgh.cjs +163 -0
  22. package/dist/httpUtils.d-C8wPxU79.d.mts +25 -0
  23. package/dist/httpUtils.d-C8wPxU79.d.mts.map +1 -0
  24. package/dist/httpUtils.d-DNRVGNHs.d.cts +25 -0
  25. package/dist/httpUtils.d-DNRVGNHs.d.cts.map +1 -0
  26. package/dist/index.cjs +731 -0
  27. package/dist/index.d.cts +197 -0
  28. package/dist/index.d.cts.map +1 -0
  29. package/dist/index.d.mts +197 -0
  30. package/dist/index.d.mts.map +1 -0
  31. package/dist/index.mjs +733 -16
  32. package/dist/index.mjs.map +1 -0
  33. package/dist/links/httpBatchLink.cjs +6 -0
  34. package/dist/links/httpBatchLink.d.cts +6 -0
  35. package/dist/links/httpBatchLink.d.mts +6 -0
  36. package/dist/links/httpBatchLink.mjs +5 -107
  37. package/dist/links/httpLink.cjs +6 -0
  38. package/dist/links/httpLink.d.cts +6 -0
  39. package/dist/links/httpLink.d.mts +6 -0
  40. package/dist/links/httpLink.mjs +5 -92
  41. package/dist/links/loggerLink.cjs +3 -0
  42. package/dist/links/loggerLink.d.cts +4 -0
  43. package/dist/links/loggerLink.d.mts +4 -0
  44. package/dist/links/loggerLink.mjs +2 -175
  45. package/dist/links/splitLink.cjs +3 -0
  46. package/dist/links/splitLink.d.cts +4 -0
  47. package/dist/links/splitLink.d.mts +4 -0
  48. package/dist/links/splitLink.mjs +2 -24
  49. package/dist/links/wsLink/wsLink.cjs +6 -0
  50. package/dist/links/wsLink/wsLink.d.cts +5 -0
  51. package/dist/links/wsLink/wsLink.d.mts +5 -0
  52. package/dist/links/wsLink/wsLink.mjs +4 -31
  53. package/dist/loggerLink-CsDfg5Bb.cjs +130 -0
  54. package/dist/loggerLink-PGBSQFcR.mjs +125 -0
  55. package/dist/loggerLink-PGBSQFcR.mjs.map +1 -0
  56. package/dist/loggerLink.d-CZjK1CXm.d.mts +54 -0
  57. package/dist/loggerLink.d-CZjK1CXm.d.mts.map +1 -0
  58. package/dist/loggerLink.d-DU855urG.d.cts +54 -0
  59. package/dist/loggerLink.d-DU855urG.d.cts.map +1 -0
  60. package/dist/splitLink-BMgxggng.cjs +58 -0
  61. package/dist/splitLink-BVblHq4n.mjs +47 -0
  62. package/dist/splitLink-BVblHq4n.mjs.map +1 -0
  63. package/dist/splitLink.d-BAqgq0NG.d.mts +20 -0
  64. package/dist/splitLink.d-BAqgq0NG.d.mts.map +1 -0
  65. package/dist/splitLink.d-GdevSkGW.d.cts +20 -0
  66. package/dist/splitLink.d-GdevSkGW.d.cts.map +1 -0
  67. package/dist/subscriptions.d-Ciljg_dH.d.cts +19 -0
  68. package/dist/subscriptions.d-Ciljg_dH.d.cts.map +1 -0
  69. package/dist/subscriptions.d-U92STdZl.d.mts +19 -0
  70. package/dist/subscriptions.d-U92STdZl.d.mts.map +1 -0
  71. package/dist/types.d-DXbqQLCC.d.mts +182 -0
  72. package/dist/types.d-DXbqQLCC.d.mts.map +1 -0
  73. package/dist/types.d-DqGYG6S_.d.cts +182 -0
  74. package/dist/types.d-DqGYG6S_.d.cts.map +1 -0
  75. package/dist/unstable-internals-CYBH4jbF.cjs +34 -0
  76. package/dist/unstable-internals-DU4WecoG.mjs +29 -0
  77. package/dist/unstable-internals-DU4WecoG.mjs.map +1 -0
  78. package/dist/unstable-internals.cjs +3 -0
  79. package/dist/unstable-internals.d-DyLd-B0J.d.mts +46 -0
  80. package/dist/unstable-internals.d-DyLd-B0J.d.mts.map +1 -0
  81. package/dist/unstable-internals.d-kWsZTlQq.d.cts +46 -0
  82. package/dist/unstable-internals.d-kWsZTlQq.d.cts.map +1 -0
  83. package/dist/unstable-internals.d.cts +3 -0
  84. package/dist/unstable-internals.d.mts +3 -0
  85. package/dist/unstable-internals.mjs +3 -1
  86. package/dist/wsLink-DbSHOzlB.mjs +698 -0
  87. package/dist/wsLink-DbSHOzlB.mjs.map +1 -0
  88. package/dist/wsLink-DhJ50EC5.cjs +715 -0
  89. package/dist/wsLink.d-BqO7ltN_.d.mts +194 -0
  90. package/dist/wsLink.d-BqO7ltN_.d.mts.map +1 -0
  91. package/dist/wsLink.d-DtZjg09g.d.cts +194 -0
  92. package/dist/wsLink.d-DtZjg09g.d.cts.map +1 -0
  93. package/links/httpBatchLink/package.json +1 -0
  94. package/links/httpLink/package.json +1 -0
  95. package/links/loggerLink/package.json +1 -0
  96. package/links/splitLink/package.json +1 -0
  97. package/links/wsLink/wsLink/package.json +1 -0
  98. package/package.json +67 -33
  99. package/unstable-internals/package.json +1 -0
  100. package/dist/TRPCClientError.d.ts +0 -30
  101. package/dist/TRPCClientError.d.ts.map +0 -1
  102. package/dist/TRPCClientError.js +0 -79
  103. package/dist/TRPCClientError.mjs +0 -76
  104. package/dist/createTRPCClient.d.ts +0 -69
  105. package/dist/createTRPCClient.d.ts.map +0 -1
  106. package/dist/createTRPCClient.js +0 -48
  107. package/dist/createTRPCClient.mjs +0 -43
  108. package/dist/createTRPCUntypedClient.d.ts +0 -7
  109. package/dist/createTRPCUntypedClient.d.ts.map +0 -1
  110. package/dist/createTRPCUntypedClient.js +0 -10
  111. package/dist/createTRPCUntypedClient.mjs +0 -7
  112. package/dist/getFetch.d.ts +0 -3
  113. package/dist/getFetch.d.ts.map +0 -1
  114. package/dist/getFetch.js +0 -17
  115. package/dist/getFetch.mjs +0 -15
  116. package/dist/index.d.ts +0 -16
  117. package/dist/index.d.ts.map +0 -1
  118. package/dist/index.js +0 -46
  119. package/dist/internals/TRPCUntypedClient.d.ts +0 -39
  120. package/dist/internals/TRPCUntypedClient.d.ts.map +0 -1
  121. package/dist/internals/TRPCUntypedClient.js +0 -115
  122. package/dist/internals/TRPCUntypedClient.mjs +0 -113
  123. package/dist/internals/dataLoader.d.ts +0 -13
  124. package/dist/internals/dataLoader.d.ts.map +0 -1
  125. package/dist/internals/dataLoader.js +0 -117
  126. package/dist/internals/dataLoader.mjs +0 -115
  127. package/dist/internals/inputWithTrackedEventId.d.ts +0 -2
  128. package/dist/internals/inputWithTrackedEventId.d.ts.map +0 -1
  129. package/dist/internals/inputWithTrackedEventId.js +0 -16
  130. package/dist/internals/inputWithTrackedEventId.mjs +0 -14
  131. package/dist/internals/signals.d.ts +0 -16
  132. package/dist/internals/signals.d.ts.map +0 -1
  133. package/dist/internals/signals.js +0 -61
  134. package/dist/internals/signals.mjs +0 -57
  135. package/dist/internals/transformer.d.ts +0 -42
  136. package/dist/internals/transformer.d.ts.map +0 -1
  137. package/dist/internals/transformer.js +0 -30
  138. package/dist/internals/transformer.mjs +0 -28
  139. package/dist/internals/types.d.ts +0 -82
  140. package/dist/internals/types.d.ts.map +0 -1
  141. package/dist/links/HTTPBatchLinkOptions.d.ts +0 -20
  142. package/dist/links/HTTPBatchLinkOptions.d.ts.map +0 -1
  143. package/dist/links/httpBatchLink.d.ts +0 -8
  144. package/dist/links/httpBatchLink.d.ts.map +0 -1
  145. package/dist/links/httpBatchLink.js +0 -110
  146. package/dist/links/httpBatchStreamLink.d.ts +0 -12
  147. package/dist/links/httpBatchStreamLink.d.ts.map +0 -1
  148. package/dist/links/httpBatchStreamLink.js +0 -150
  149. package/dist/links/httpBatchStreamLink.mjs +0 -147
  150. package/dist/links/httpLink.d.ts +0 -17
  151. package/dist/links/httpLink.d.ts.map +0 -1
  152. package/dist/links/httpLink.js +0 -95
  153. package/dist/links/httpSubscriptionLink.d.ts +0 -26
  154. package/dist/links/httpSubscriptionLink.d.ts.map +0 -1
  155. package/dist/links/httpSubscriptionLink.js +0 -177
  156. package/dist/links/httpSubscriptionLink.mjs +0 -174
  157. package/dist/links/internals/contentTypes.d.ts +0 -4
  158. package/dist/links/internals/contentTypes.d.ts.map +0 -1
  159. package/dist/links/internals/contentTypes.js +0 -16
  160. package/dist/links/internals/contentTypes.mjs +0 -12
  161. package/dist/links/internals/createChain.d.ts +0 -8
  162. package/dist/links/internals/createChain.d.ts.map +0 -1
  163. package/dist/links/internals/createChain.js +0 -26
  164. package/dist/links/internals/createChain.mjs +0 -24
  165. package/dist/links/internals/dedupeLink.d.ts +0 -7
  166. package/dist/links/internals/dedupeLink.d.ts.map +0 -1
  167. package/dist/links/internals/httpUtils.d.ts +0 -68
  168. package/dist/links/internals/httpUtils.d.ts.map +0 -1
  169. package/dist/links/internals/httpUtils.js +0 -141
  170. package/dist/links/internals/httpUtils.mjs +0 -133
  171. package/dist/links/internals/subscriptions.d.ts +0 -17
  172. package/dist/links/internals/subscriptions.d.ts.map +0 -1
  173. package/dist/links/internals/urlWithConnectionParams.d.ts +0 -23
  174. package/dist/links/internals/urlWithConnectionParams.d.ts.map +0 -1
  175. package/dist/links/internals/urlWithConnectionParams.js +0 -10
  176. package/dist/links/internals/urlWithConnectionParams.mjs +0 -8
  177. package/dist/links/localLink.d.ts +0 -15
  178. package/dist/links/localLink.d.ts.map +0 -1
  179. package/dist/links/localLink.js +0 -333
  180. package/dist/links/localLink.mjs +0 -331
  181. package/dist/links/loggerLink.d.ts +0 -52
  182. package/dist/links/loggerLink.d.ts.map +0 -1
  183. package/dist/links/loggerLink.js +0 -178
  184. package/dist/links/retryLink.d.ts +0 -33
  185. package/dist/links/retryLink.d.ts.map +0 -1
  186. package/dist/links/retryLink.js +0 -72
  187. package/dist/links/retryLink.mjs +0 -70
  188. package/dist/links/splitLink.d.ts +0 -14
  189. package/dist/links/splitLink.d.ts.map +0 -1
  190. package/dist/links/splitLink.js +0 -27
  191. package/dist/links/types.d.ts +0 -63
  192. package/dist/links/types.d.ts.map +0 -1
  193. package/dist/links/wsLink/createWsClient.d.ts +0 -6
  194. package/dist/links/wsLink/createWsClient.d.ts.map +0 -1
  195. package/dist/links/wsLink/createWsClient.js +0 -9
  196. package/dist/links/wsLink/createWsClient.mjs +0 -7
  197. package/dist/links/wsLink/wsClient/options.d.ts +0 -79
  198. package/dist/links/wsLink/wsClient/options.d.ts.map +0 -1
  199. package/dist/links/wsLink/wsClient/options.js +0 -22
  200. package/dist/links/wsLink/wsClient/options.mjs +0 -18
  201. package/dist/links/wsLink/wsClient/requestManager.d.ts +0 -106
  202. package/dist/links/wsLink/wsClient/requestManager.d.ts.map +0 -1
  203. package/dist/links/wsLink/wsClient/requestManager.js +0 -143
  204. package/dist/links/wsLink/wsClient/requestManager.mjs +0 -141
  205. package/dist/links/wsLink/wsClient/utils.d.ts +0 -38
  206. package/dist/links/wsLink/wsClient/utils.d.ts.map +0 -1
  207. package/dist/links/wsLink/wsClient/utils.js +0 -94
  208. package/dist/links/wsLink/wsClient/utils.mjs +0 -88
  209. package/dist/links/wsLink/wsClient/wsClient.d.ts +0 -84
  210. package/dist/links/wsLink/wsClient/wsClient.d.ts.map +0 -1
  211. package/dist/links/wsLink/wsClient/wsClient.js +0 -325
  212. package/dist/links/wsLink/wsClient/wsClient.mjs +0 -323
  213. package/dist/links/wsLink/wsClient/wsConnection.d.ts +0 -79
  214. package/dist/links/wsLink/wsClient/wsConnection.d.ts.map +0 -1
  215. package/dist/links/wsLink/wsClient/wsConnection.js +0 -188
  216. package/dist/links/wsLink/wsClient/wsConnection.mjs +0 -185
  217. package/dist/links/wsLink/wsLink.d.ts +0 -11
  218. package/dist/links/wsLink/wsLink.d.ts.map +0 -1
  219. package/dist/links/wsLink/wsLink.js +0 -35
  220. package/dist/links.d.ts +0 -12
  221. package/dist/links.d.ts.map +0 -1
  222. package/dist/unstable-internals.d.ts +0 -3
  223. package/dist/unstable-internals.d.ts.map +0 -1
  224. package/dist/unstable-internals.js +0 -7
  225. package/links/httpBatchLink/index.d.ts +0 -1
  226. package/links/httpBatchLink/index.js +0 -1
  227. package/links/httpLink/index.d.ts +0 -1
  228. package/links/httpLink/index.js +0 -1
  229. package/links/loggerLink/index.d.ts +0 -1
  230. package/links/loggerLink/index.js +0 -1
  231. package/links/splitLink/index.d.ts +0 -1
  232. package/links/splitLink/index.js +0 -1
  233. package/links/wsLink/index.d.ts +0 -1
  234. package/links/wsLink/index.js +0 -1
  235. package/links/wsLink/wsLink/index.d.ts +0 -1
  236. package/links/wsLink/wsLink/index.js +0 -1
  237. package/unstable-internals/index.d.ts +0 -1
  238. package/unstable-internals/index.js +0 -1
@@ -1,113 +0,0 @@
1
- import { share, observableToPromise } from '@trpc/server/observable';
2
- import { createChain } from '../links/internals/createChain.mjs';
3
- import { TRPCClientError } from '../TRPCClientError.mjs';
4
-
5
- function _define_property(obj, key, value) {
6
- if (key in obj) {
7
- Object.defineProperty(obj, key, {
8
- value: value,
9
- enumerable: true,
10
- configurable: true,
11
- writable: true
12
- });
13
- } else {
14
- obj[key] = value;
15
- }
16
- return obj;
17
- }
18
- class TRPCUntypedClient {
19
- $request(opts) {
20
- const chain$ = createChain({
21
- links: this.links,
22
- op: {
23
- ...opts,
24
- context: opts.context ?? {},
25
- id: ++this.requestId
26
- }
27
- });
28
- return chain$.pipe(share());
29
- }
30
- async requestAsPromise(opts) {
31
- try {
32
- const req$ = this.$request(opts);
33
- const envelope = await observableToPromise(req$);
34
- const data = envelope.result.data;
35
- return data;
36
- } catch (err) {
37
- throw TRPCClientError.from(err);
38
- }
39
- }
40
- query(path, input, opts) {
41
- return this.requestAsPromise({
42
- type: 'query',
43
- path,
44
- input,
45
- context: opts?.context,
46
- signal: opts?.signal
47
- });
48
- }
49
- mutation(path, input, opts) {
50
- return this.requestAsPromise({
51
- type: 'mutation',
52
- path,
53
- input,
54
- context: opts?.context,
55
- signal: opts?.signal
56
- });
57
- }
58
- subscription(path, input, opts) {
59
- const observable$ = this.$request({
60
- type: 'subscription',
61
- path,
62
- input,
63
- context: opts.context,
64
- signal: opts.signal
65
- });
66
- return observable$.subscribe({
67
- next (envelope) {
68
- switch(envelope.result.type){
69
- case 'state':
70
- {
71
- opts.onConnectionStateChange?.(envelope.result);
72
- break;
73
- }
74
- case 'started':
75
- {
76
- opts.onStarted?.({
77
- context: envelope.context
78
- });
79
- break;
80
- }
81
- case 'stopped':
82
- {
83
- opts.onStopped?.();
84
- break;
85
- }
86
- case 'data':
87
- case undefined:
88
- {
89
- opts.onData?.(envelope.result.data);
90
- break;
91
- }
92
- }
93
- },
94
- error (err) {
95
- opts.onError?.(err);
96
- },
97
- complete () {
98
- opts.onComplete?.();
99
- }
100
- });
101
- }
102
- constructor(opts){
103
- _define_property(this, "links", void 0);
104
- _define_property(this, "runtime", void 0);
105
- _define_property(this, "requestId", void 0);
106
- this.requestId = 0;
107
- this.runtime = {};
108
- // Initialize the links
109
- this.links = opts.links.map((link)=>link(this.runtime));
110
- }
111
- }
112
-
113
- export { TRPCUntypedClient };
@@ -1,13 +0,0 @@
1
- export type BatchLoader<TKey, TValue> = {
2
- validate: (keys: TKey[]) => boolean;
3
- fetch: (keys: TKey[]) => Promise<TValue[] | Promise<TValue>[]>;
4
- };
5
- /**
6
- * Dataloader that's very inspired by https://github.com/graphql/dataloader
7
- * Less configuration, no caching, and allows you to cancel requests
8
- * When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
9
- */
10
- export declare function dataLoader<TKey, TValue>(batchLoader: BatchLoader<TKey, TValue>): {
11
- load: (key: TKey) => Promise<TValue>;
12
- };
13
- //# sourceMappingURL=dataLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dataLoader.d.ts","sourceRoot":"","sources":["../../src/internals/dataLoader.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,WAAW,CAAC,IAAI,EAAE,MAAM,IAAI;IACtC,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC;IACpC,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;CAChE,CAAC;AAWF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EACrC,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;gBAsGnB,IAAI,KAAG,OAAO,CAAC,MAAM,CAAC;EAyB1C"}
@@ -1,117 +0,0 @@
1
- 'use strict';
2
-
3
- /* eslint-disable @typescript-eslint/no-non-null-assertion */ /**
4
- * A function that should never be called unless we messed something up.
5
- */ const throwFatalError = ()=>{
6
- throw new Error('Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new');
7
- };
8
- /**
9
- * Dataloader that's very inspired by https://github.com/graphql/dataloader
10
- * Less configuration, no caching, and allows you to cancel requests
11
- * When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
12
- */ function dataLoader(batchLoader) {
13
- let pendingItems = null;
14
- let dispatchTimer = null;
15
- const destroyTimerAndPendingItems = ()=>{
16
- clearTimeout(dispatchTimer);
17
- dispatchTimer = null;
18
- pendingItems = null;
19
- };
20
- /**
21
- * Iterate through the items and split them into groups based on the `batchLoader`'s validate function
22
- */ function groupItems(items) {
23
- const groupedItems = [
24
- []
25
- ];
26
- let index = 0;
27
- while(true){
28
- const item = items[index];
29
- if (!item) {
30
- break;
31
- }
32
- const lastGroup = groupedItems[groupedItems.length - 1];
33
- if (item.aborted) {
34
- // Item was aborted before it was dispatched
35
- item.reject?.(new Error('Aborted'));
36
- index++;
37
- continue;
38
- }
39
- const isValid = batchLoader.validate(lastGroup.concat(item).map((it)=>it.key));
40
- if (isValid) {
41
- lastGroup.push(item);
42
- index++;
43
- continue;
44
- }
45
- if (lastGroup.length === 0) {
46
- item.reject?.(new Error('Input is too big for a single dispatch'));
47
- index++;
48
- continue;
49
- }
50
- // Create new group, next iteration will try to add the item to that
51
- groupedItems.push([]);
52
- }
53
- return groupedItems;
54
- }
55
- function dispatch() {
56
- const groupedItems = groupItems(pendingItems);
57
- destroyTimerAndPendingItems();
58
- // Create batches for each group of items
59
- for (const items of groupedItems){
60
- if (!items.length) {
61
- continue;
62
- }
63
- const batch = {
64
- items
65
- };
66
- for (const item of items){
67
- item.batch = batch;
68
- }
69
- const promise = batchLoader.fetch(batch.items.map((_item)=>_item.key));
70
- promise.then(async (result)=>{
71
- await Promise.all(result.map(async (valueOrPromise, index)=>{
72
- const item = batch.items[index];
73
- try {
74
- const value = await Promise.resolve(valueOrPromise);
75
- item.resolve?.(value);
76
- } catch (cause) {
77
- item.reject?.(cause);
78
- }
79
- item.batch = null;
80
- item.reject = null;
81
- item.resolve = null;
82
- }));
83
- for (const item of batch.items){
84
- item.reject?.(new Error('Missing result'));
85
- item.batch = null;
86
- }
87
- }).catch((cause)=>{
88
- for (const item of batch.items){
89
- item.reject?.(cause);
90
- item.batch = null;
91
- }
92
- });
93
- }
94
- }
95
- function load(key) {
96
- const item = {
97
- aborted: false,
98
- key,
99
- batch: null,
100
- resolve: throwFatalError,
101
- reject: throwFatalError
102
- };
103
- const promise = new Promise((resolve, reject)=>{
104
- item.reject = reject;
105
- item.resolve = resolve;
106
- pendingItems ?? (pendingItems = []);
107
- pendingItems.push(item);
108
- });
109
- dispatchTimer ?? (dispatchTimer = setTimeout(dispatch));
110
- return promise;
111
- }
112
- return {
113
- load
114
- };
115
- }
116
-
117
- exports.dataLoader = dataLoader;
@@ -1,115 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-non-null-assertion */ /**
2
- * A function that should never be called unless we messed something up.
3
- */ const throwFatalError = ()=>{
4
- throw new Error('Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new');
5
- };
6
- /**
7
- * Dataloader that's very inspired by https://github.com/graphql/dataloader
8
- * Less configuration, no caching, and allows you to cancel requests
9
- * When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
10
- */ function dataLoader(batchLoader) {
11
- let pendingItems = null;
12
- let dispatchTimer = null;
13
- const destroyTimerAndPendingItems = ()=>{
14
- clearTimeout(dispatchTimer);
15
- dispatchTimer = null;
16
- pendingItems = null;
17
- };
18
- /**
19
- * Iterate through the items and split them into groups based on the `batchLoader`'s validate function
20
- */ function groupItems(items) {
21
- const groupedItems = [
22
- []
23
- ];
24
- let index = 0;
25
- while(true){
26
- const item = items[index];
27
- if (!item) {
28
- break;
29
- }
30
- const lastGroup = groupedItems[groupedItems.length - 1];
31
- if (item.aborted) {
32
- // Item was aborted before it was dispatched
33
- item.reject?.(new Error('Aborted'));
34
- index++;
35
- continue;
36
- }
37
- const isValid = batchLoader.validate(lastGroup.concat(item).map((it)=>it.key));
38
- if (isValid) {
39
- lastGroup.push(item);
40
- index++;
41
- continue;
42
- }
43
- if (lastGroup.length === 0) {
44
- item.reject?.(new Error('Input is too big for a single dispatch'));
45
- index++;
46
- continue;
47
- }
48
- // Create new group, next iteration will try to add the item to that
49
- groupedItems.push([]);
50
- }
51
- return groupedItems;
52
- }
53
- function dispatch() {
54
- const groupedItems = groupItems(pendingItems);
55
- destroyTimerAndPendingItems();
56
- // Create batches for each group of items
57
- for (const items of groupedItems){
58
- if (!items.length) {
59
- continue;
60
- }
61
- const batch = {
62
- items
63
- };
64
- for (const item of items){
65
- item.batch = batch;
66
- }
67
- const promise = batchLoader.fetch(batch.items.map((_item)=>_item.key));
68
- promise.then(async (result)=>{
69
- await Promise.all(result.map(async (valueOrPromise, index)=>{
70
- const item = batch.items[index];
71
- try {
72
- const value = await Promise.resolve(valueOrPromise);
73
- item.resolve?.(value);
74
- } catch (cause) {
75
- item.reject?.(cause);
76
- }
77
- item.batch = null;
78
- item.reject = null;
79
- item.resolve = null;
80
- }));
81
- for (const item of batch.items){
82
- item.reject?.(new Error('Missing result'));
83
- item.batch = null;
84
- }
85
- }).catch((cause)=>{
86
- for (const item of batch.items){
87
- item.reject?.(cause);
88
- item.batch = null;
89
- }
90
- });
91
- }
92
- }
93
- function load(key) {
94
- const item = {
95
- aborted: false,
96
- key,
97
- batch: null,
98
- resolve: throwFatalError,
99
- reject: throwFatalError
100
- };
101
- const promise = new Promise((resolve, reject)=>{
102
- item.reject = reject;
103
- item.resolve = resolve;
104
- pendingItems ?? (pendingItems = []);
105
- pendingItems.push(item);
106
- });
107
- dispatchTimer ?? (dispatchTimer = setTimeout(dispatch));
108
- return promise;
109
- }
110
- return {
111
- load
112
- };
113
- }
114
-
115
- export { dataLoader };
@@ -1,2 +0,0 @@
1
- export declare function inputWithTrackedEventId(input: unknown, lastEventId: string | undefined): unknown;
2
- //# sourceMappingURL=inputWithTrackedEventId.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inputWithTrackedEventId.d.ts","sourceRoot":"","sources":["../../src/internals/inputWithTrackedEventId.ts"],"names":[],"mappings":"AAAA,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,WAAW,EAAE,MAAM,GAAG,SAAS,WAYhC"}
@@ -1,16 +0,0 @@
1
- 'use strict';
2
-
3
- function inputWithTrackedEventId(input, lastEventId) {
4
- if (!lastEventId) {
5
- return input;
6
- }
7
- if (input != null && typeof input !== 'object') {
8
- return input;
9
- }
10
- return {
11
- ...input ?? {},
12
- lastEventId
13
- };
14
- }
15
-
16
- exports.inputWithTrackedEventId = inputWithTrackedEventId;
@@ -1,14 +0,0 @@
1
- function inputWithTrackedEventId(input, lastEventId) {
2
- if (!lastEventId) {
3
- return input;
4
- }
5
- if (input != null && typeof input !== 'object') {
6
- return input;
7
- }
8
- return {
9
- ...input ?? {},
10
- lastEventId
11
- };
12
- }
13
-
14
- export { inputWithTrackedEventId };
@@ -1,16 +0,0 @@
1
- import type { Maybe } from '@trpc/server/unstable-core-do-not-import';
2
- /**
3
- * Like `Promise.all()` but for abort signals
4
- * - When all signals have been aborted, the merged signal will be aborted
5
- * - If one signal is `null`, no signal will be aborted
6
- */
7
- export declare function allAbortSignals(...signals: Maybe<AbortSignal>[]): AbortSignal;
8
- /**
9
- * Like `Promise.race` but for abort signals
10
- *
11
- * Basically, a ponyfill for
12
- * [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).
13
- */
14
- export declare function raceAbortSignals(...signals: Maybe<AbortSignal>[]): AbortSignal;
15
- export declare function abortSignalToPromise(signal: AbortSignal): Promise<never>;
16
- //# sourceMappingURL=signals.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signals.d.ts","sourceRoot":"","sources":["../../src/internals/signals.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AAEtE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,GAAG,WAAW,CAwB7E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE,GAC/B,WAAW,CAYb;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAcxE"}
@@ -1,61 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * Like `Promise.all()` but for abort signals
5
- * - When all signals have been aborted, the merged signal will be aborted
6
- * - If one signal is `null`, no signal will be aborted
7
- */ function allAbortSignals(...signals) {
8
- const ac = new AbortController();
9
- const count = signals.length;
10
- let abortedCount = 0;
11
- const onAbort = ()=>{
12
- if (++abortedCount === count) {
13
- ac.abort();
14
- }
15
- };
16
- for (const signal of signals){
17
- if (signal?.aborted) {
18
- onAbort();
19
- } else {
20
- signal?.addEventListener('abort', onAbort, {
21
- once: true
22
- });
23
- }
24
- }
25
- return ac.signal;
26
- }
27
- /**
28
- * Like `Promise.race` but for abort signals
29
- *
30
- * Basically, a ponyfill for
31
- * [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).
32
- */ function raceAbortSignals(...signals) {
33
- const ac = new AbortController();
34
- for (const signal of signals){
35
- if (signal?.aborted) {
36
- ac.abort();
37
- } else {
38
- signal?.addEventListener('abort', ()=>ac.abort(), {
39
- once: true
40
- });
41
- }
42
- }
43
- return ac.signal;
44
- }
45
- function abortSignalToPromise(signal) {
46
- return new Promise((_, reject)=>{
47
- if (signal.aborted) {
48
- reject(signal.reason);
49
- return;
50
- }
51
- signal.addEventListener('abort', ()=>{
52
- reject(signal.reason);
53
- }, {
54
- once: true
55
- });
56
- });
57
- }
58
-
59
- exports.abortSignalToPromise = abortSignalToPromise;
60
- exports.allAbortSignals = allAbortSignals;
61
- exports.raceAbortSignals = raceAbortSignals;
@@ -1,57 +0,0 @@
1
- /**
2
- * Like `Promise.all()` but for abort signals
3
- * - When all signals have been aborted, the merged signal will be aborted
4
- * - If one signal is `null`, no signal will be aborted
5
- */ function allAbortSignals(...signals) {
6
- const ac = new AbortController();
7
- const count = signals.length;
8
- let abortedCount = 0;
9
- const onAbort = ()=>{
10
- if (++abortedCount === count) {
11
- ac.abort();
12
- }
13
- };
14
- for (const signal of signals){
15
- if (signal?.aborted) {
16
- onAbort();
17
- } else {
18
- signal?.addEventListener('abort', onAbort, {
19
- once: true
20
- });
21
- }
22
- }
23
- return ac.signal;
24
- }
25
- /**
26
- * Like `Promise.race` but for abort signals
27
- *
28
- * Basically, a ponyfill for
29
- * [`AbortSignal.any`](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/any_static).
30
- */ function raceAbortSignals(...signals) {
31
- const ac = new AbortController();
32
- for (const signal of signals){
33
- if (signal?.aborted) {
34
- ac.abort();
35
- } else {
36
- signal?.addEventListener('abort', ()=>ac.abort(), {
37
- once: true
38
- });
39
- }
40
- }
41
- return ac.signal;
42
- }
43
- function abortSignalToPromise(signal) {
44
- return new Promise((_, reject)=>{
45
- if (signal.aborted) {
46
- reject(signal.reason);
47
- return;
48
- }
49
- signal.addEventListener('abort', ()=>{
50
- reject(signal.reason);
51
- }, {
52
- once: true
53
- });
54
- });
55
- }
56
-
57
- export { abortSignalToPromise, allAbortSignals, raceAbortSignals };
@@ -1,42 +0,0 @@
1
- import type { AnyClientTypes, CombinedDataTransformer, DataTransformerOptions, TypeError } from '@trpc/server/unstable-core-do-not-import';
2
- /**
3
- * @internal
4
- */
5
- export type CoercedTransformerParameters = {
6
- transformer?: DataTransformerOptions;
7
- };
8
- type TransformerOptionYes = {
9
- /**
10
- * Data transformer
11
- *
12
- * You must use the same transformer on the backend and frontend
13
- * @see https://trpc.io/docs/v11/data-transformers
14
- **/
15
- transformer: DataTransformerOptions;
16
- };
17
- type TransformerOptionNo = {
18
- /**
19
- * Data transformer
20
- *
21
- * You must use the same transformer on the backend and frontend
22
- * @see https://trpc.io/docs/v11/data-transformers
23
- **/
24
- transformer?: TypeError<'You must define a transformer on your your `initTRPC`-object first'>;
25
- };
26
- /**
27
- * @internal
28
- */
29
- export type TransformerOptions<TRoot extends Pick<AnyClientTypes, 'transformer'>> = TRoot['transformer'] extends true ? TransformerOptionYes : TransformerOptionNo;
30
- /**
31
- * @internal
32
- */
33
- /**
34
- * @internal
35
- */
36
- export declare function getTransformer(transformer: TransformerOptions<{
37
- transformer: false;
38
- }>['transformer'] | TransformerOptions<{
39
- transformer: true;
40
- }>['transformer'] | undefined): CombinedDataTransformer;
41
- export {};
42
- //# sourceMappingURL=transformer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../src/internals/transformer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,SAAS,EACV,MAAM,0CAA0C,CAAC;AAElD;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG;IACzC,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B;;;;;QAKI;IACJ,WAAW,EAAE,sBAAsB,CAAC;CACrC,CAAC;AACF,KAAK,mBAAmB,GAAG;IACzB;;;;;QAKI;IACJ,WAAW,CAAC,EAAE,SAAS,CAAC,oEAAoE,CAAC,CAAC;CAC/F,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAC5B,KAAK,SAAS,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,IAC/C,KAAK,CAAC,aAAa,CAAC,SAAS,IAAI,GACjC,oBAAoB,GACpB,mBAAmB,CAAC;AACxB;;GAEG;AAEH;;GAEG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EACP,kBAAkB,CAAC;IAAE,WAAW,EAAE,KAAK,CAAA;CAAE,CAAC,CAAC,aAAa,CAAC,GACzD,kBAAkB,CAAC;IAAE,WAAW,EAAE,IAAI,CAAA;CAAE,CAAC,CAAC,aAAa,CAAC,GACxD,SAAS,GACZ,uBAAuB,CAsBzB"}
@@ -1,30 +0,0 @@
1
- 'use strict';
2
-
3
- /**
4
- * @internal
5
- */ /**
6
- * @internal
7
- */ function getTransformer(transformer) {
8
- const _transformer = transformer;
9
- if (!_transformer) {
10
- return {
11
- input: {
12
- serialize: (data)=>data,
13
- deserialize: (data)=>data
14
- },
15
- output: {
16
- serialize: (data)=>data,
17
- deserialize: (data)=>data
18
- }
19
- };
20
- }
21
- if ('input' in _transformer) {
22
- return _transformer;
23
- }
24
- return {
25
- input: _transformer,
26
- output: _transformer
27
- };
28
- }
29
-
30
- exports.getTransformer = getTransformer;
@@ -1,28 +0,0 @@
1
- /**
2
- * @internal
3
- */ /**
4
- * @internal
5
- */ function getTransformer(transformer) {
6
- const _transformer = transformer;
7
- if (!_transformer) {
8
- return {
9
- input: {
10
- serialize: (data)=>data,
11
- deserialize: (data)=>data
12
- },
13
- output: {
14
- serialize: (data)=>data,
15
- deserialize: (data)=>data
16
- }
17
- };
18
- }
19
- if ('input' in _transformer) {
20
- return _transformer;
21
- }
22
- return {
23
- input: _transformer,
24
- output: _transformer
25
- };
26
- }
27
-
28
- export { getTransformer };