@trpc/client 10.0.0-alpha.2 → 10.0.0-alpha.6

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 (182) hide show
  1. package/dist/{TRPCClientError-e1da1ef0.esm.js → TRPCClientError-17b117e1.mjs} +16 -7
  2. package/dist/TRPCClientError-ec6bd2ca.js +94 -0
  3. package/dist/{declarations/src/TRPCClientError.d.ts → TRPCClientError.d.ts} +29 -29
  4. package/dist/TRPCClientError.d.ts.map +1 -0
  5. package/dist/{createChain-e45e6cf2.esm.js → createChain-389cc116.mjs} +1 -1
  6. package/dist/{createChain-93a38e1c.cjs.dev.js → createChain-864dbb30.js} +1 -1
  7. package/dist/{declarations/src/createTRPCClient.d.ts → createTRPCClient.d.ts} +5 -5
  8. package/dist/createTRPCClient.d.ts.map +1 -0
  9. package/dist/{declarations/src/getFetch.d.ts → getFetch.d.ts} +1 -1
  10. package/dist/getFetch.d.ts.map +1 -0
  11. package/dist/{httpUtils-a1426e14.cjs.dev.js → httpUtils-1f9e4e3c.js} +9 -1
  12. package/dist/{httpUtils-e45c9056.esm.js → httpUtils-c09d7b79.mjs} +5 -1
  13. package/dist/{declarations/src/index.d.ts → index.d.ts} +4 -4
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/{trpc-client.cjs.prod.js → index.js} +31 -17
  16. package/dist/{trpc-client.esm.js → index.mjs} +20 -16
  17. package/dist/index.ts.js +1 -0
  18. package/dist/{declarations/src/internals → internals}/TRPCClient.d.ts +64 -64
  19. package/dist/internals/TRPCClient.d.ts.map +1 -0
  20. package/dist/{declarations/src/internals → internals}/dataLoader.d.ts +16 -14
  21. package/dist/internals/dataLoader.d.ts.map +1 -0
  22. package/dist/{declarations/src/internals → internals}/fetchHelpers.d.ts +2 -2
  23. package/dist/internals/fetchHelpers.d.ts.map +1 -0
  24. package/dist/{declarations/src/internals → internals}/retryDelay.d.ts +1 -1
  25. package/dist/internals/retryDelay.d.ts.map +1 -0
  26. package/dist/internals/transformRPCResponse.d.ts +15 -0
  27. package/dist/internals/transformRPCResponse.d.ts.map +1 -0
  28. package/dist/links/dedupeLink.d.ts +4 -0
  29. package/dist/links/dedupeLink.d.ts.map +1 -0
  30. package/dist/links/httpBatchLink.d.ts +8 -0
  31. package/dist/links/httpBatchLink.d.ts.map +1 -0
  32. package/dist/links/httpBatchLink.js +195 -0
  33. package/dist/links/httpBatchLink.mjs +191 -0
  34. package/dist/links/httpBatchLink.ts.js +1 -0
  35. package/dist/{declarations/src/links → links}/httpLink.d.ts +4 -4
  36. package/dist/links/httpLink.d.ts.map +1 -0
  37. package/dist/links/httpLink.js +44 -0
  38. package/dist/links/httpLink.mjs +40 -0
  39. package/dist/links/httpLink.ts.js +1 -0
  40. package/dist/{declarations/src/links → links}/httpUtils.d.ts +21 -21
  41. package/dist/links/httpUtils.d.ts.map +1 -0
  42. package/dist/{declarations/src/links → links}/internals/createChain.d.ts +7 -7
  43. package/dist/links/internals/createChain.d.ts.map +1 -0
  44. package/dist/{declarations/src/links → links}/internals/transformOperationResult.d.ts +15 -15
  45. package/dist/links/internals/transformOperationResult.d.ts.map +1 -0
  46. package/dist/{declarations/src/links → links}/loggerLink.d.ts +38 -38
  47. package/dist/links/loggerLink.d.ts.map +1 -0
  48. package/dist/links/loggerLink.js +108 -0
  49. package/dist/links/loggerLink.mjs +99 -0
  50. package/dist/links/loggerLink.ts.js +1 -0
  51. package/dist/links/retryLink.d.ts +6 -0
  52. package/dist/links/retryLink.d.ts.map +1 -0
  53. package/dist/{declarations/src/links → links}/splitLink.d.ts +13 -13
  54. package/dist/links/splitLink.d.ts.map +1 -0
  55. package/dist/links/splitLink.js +32 -0
  56. package/dist/links/splitLink.mjs +28 -0
  57. package/dist/links/splitLink.ts.js +1 -0
  58. package/dist/{declarations/src/links → links}/transformerLink.d.ts +3 -3
  59. package/dist/links/transformerLink.d.ts.map +1 -0
  60. package/dist/links/transformerLink.js +75 -0
  61. package/dist/links/transformerLink.mjs +67 -0
  62. package/dist/links/transformerLink.ts.js +1 -0
  63. package/dist/{declarations/src/links → links}/types.d.ts +39 -39
  64. package/dist/links/types.d.ts.map +1 -0
  65. package/dist/{declarations/src/links → links}/wsLink.d.ts +19 -19
  66. package/dist/links/wsLink.d.ts.map +1 -0
  67. package/dist/links/wsLink.js +385 -0
  68. package/dist/links/wsLink.mjs +370 -0
  69. package/dist/links/wsLink.ts.js +1 -0
  70. package/dist/{observable-01534ea8.esm.js → observable-7e66cb56.mjs} +0 -0
  71. package/dist/{observable-9aad8c3e.cjs.dev.js → observable-85669100.js} +0 -0
  72. package/dist/{declarations/src/rx → rx}/index.d.ts +2 -2
  73. package/dist/rx/index.d.ts.map +1 -0
  74. package/dist/rx/index.js +9 -0
  75. package/dist/rx/index.mjs +1 -0
  76. package/dist/rx/index.ts.js +1 -0
  77. package/dist/{declarations/src/rx → rx}/observable.d.ts +3 -3
  78. package/dist/rx/observable.d.ts.map +1 -0
  79. package/dist/{declarations/src/rx → rx}/operators/index.d.ts +3 -3
  80. package/dist/rx/operators/index.d.ts.map +1 -0
  81. package/dist/rx/operators/index.js +38 -0
  82. package/dist/rx/operators/index.mjs +32 -0
  83. package/dist/rx/operators/index.ts.js +1 -0
  84. package/dist/{declarations/src/rx → rx}/operators/map.d.ts +2 -2
  85. package/dist/rx/operators/map.d.ts.map +1 -0
  86. package/dist/{declarations/src/rx → rx}/operators/share.d.ts +5 -5
  87. package/dist/rx/operators/share.d.ts.map +1 -0
  88. package/dist/{declarations/src/rx → rx}/operators/tap.d.ts +2 -2
  89. package/dist/rx/operators/tap.d.ts.map +1 -0
  90. package/dist/{declarations/src/rx → rx}/types.d.ts +28 -28
  91. package/dist/rx/types.d.ts.map +1 -0
  92. package/dist/{declarations/src/rx → rx}/util/identity.d.ts +1 -1
  93. package/dist/rx/util/identity.d.ts.map +1 -0
  94. package/dist/{declarations/src/rx → rx}/util/observableToPromise.d.ts +9 -9
  95. package/dist/rx/util/observableToPromise.d.ts.map +1 -0
  96. package/dist/{declarations/src/rx → rx}/util/pipe.d.ts +3 -3
  97. package/dist/rx/util/pipe.d.ts.map +1 -0
  98. package/dist/{share-f2ac9332.cjs.dev.js → share-4d79dc49.js} +5 -1
  99. package/dist/{share-ca585761.esm.js → share-671b63fa.mjs} +5 -1
  100. package/dist/{tap-606957cb.esm.js → tap-538fa07f.mjs} +0 -0
  101. package/dist/{tap-2d565250.cjs.dev.js → tap-799a2d33.js} +0 -0
  102. package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.dev.js +68 -38
  103. package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.prod.js +68 -38
  104. package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.esm.js +67 -37
  105. package/links/httpBatchLink/index.d.ts +1 -0
  106. package/links/httpBatchLink/index.js +1 -0
  107. package/links/httpLink/dist/trpc-client-links-httpLink.cjs.dev.js +52 -29
  108. package/links/httpLink/dist/trpc-client-links-httpLink.cjs.prod.js +52 -29
  109. package/links/httpLink/dist/trpc-client-links-httpLink.esm.js +52 -29
  110. package/links/httpLink/index.d.ts +1 -0
  111. package/links/httpLink/index.js +1 -0
  112. package/links/loggerLink/dist/trpc-client-links-loggerLink.cjs.dev.js +19 -31
  113. package/links/loggerLink/dist/trpc-client-links-loggerLink.cjs.prod.js +19 -31
  114. package/links/loggerLink/dist/trpc-client-links-loggerLink.esm.js +19 -31
  115. package/links/loggerLink/index.d.ts +1 -0
  116. package/links/loggerLink/index.js +1 -0
  117. package/links/splitLink/dist/trpc-client-links-splitLink.cjs.dev.js +7 -20
  118. package/links/splitLink/dist/trpc-client-links-splitLink.cjs.prod.js +7 -20
  119. package/links/splitLink/dist/trpc-client-links-splitLink.esm.js +7 -20
  120. package/links/splitLink/index.d.ts +1 -0
  121. package/links/splitLink/index.js +1 -0
  122. package/links/transformerLink/index.d.ts +1 -0
  123. package/links/transformerLink/index.js +1 -0
  124. package/links/wsLink/dist/trpc-client-links-wsLink.cjs.dev.js +84 -60
  125. package/links/wsLink/dist/trpc-client-links-wsLink.cjs.prod.js +84 -60
  126. package/links/wsLink/dist/trpc-client-links-wsLink.esm.js +84 -60
  127. package/links/wsLink/index.d.ts +1 -0
  128. package/links/wsLink/index.js +1 -0
  129. package/package.json +56 -20
  130. package/rx/index.d.ts +1 -0
  131. package/rx/index.js +1 -0
  132. package/rx/operators/index.d.ts +1 -0
  133. package/rx/operators/index.js +1 -0
  134. package/src/internals/dataLoader.ts +13 -1
  135. package/src/links/httpBatchLink.ts +9 -3
  136. package/dist/TRPCClientError-a5312a5f.cjs.dev.js +0 -74
  137. package/dist/TRPCClientError-ea7d89b2.cjs.prod.js +0 -74
  138. package/dist/createChain-e45e052a.cjs.prod.js +0 -27
  139. package/dist/declarations/src/TRPCClientError.d.ts.map +0 -1
  140. package/dist/declarations/src/createTRPCClient.d.ts.map +0 -1
  141. package/dist/declarations/src/getFetch.d.ts.map +0 -1
  142. package/dist/declarations/src/index.d.ts.map +0 -1
  143. package/dist/declarations/src/internals/TRPCClient.d.ts.map +0 -1
  144. package/dist/declarations/src/internals/dataLoader.d.ts.map +0 -1
  145. package/dist/declarations/src/internals/fetchHelpers.d.ts.map +0 -1
  146. package/dist/declarations/src/internals/retryDelay.d.ts.map +0 -1
  147. package/dist/declarations/src/links/httpBatchLink.d.ts +0 -5
  148. package/dist/declarations/src/links/httpBatchLink.d.ts.map +0 -1
  149. package/dist/declarations/src/links/httpLink.d.ts.map +0 -1
  150. package/dist/declarations/src/links/httpUtils.d.ts.map +0 -1
  151. package/dist/declarations/src/links/internals/createChain.d.ts.map +0 -1
  152. package/dist/declarations/src/links/internals/transformOperationResult.d.ts.map +0 -1
  153. package/dist/declarations/src/links/loggerLink.d.ts.map +0 -1
  154. package/dist/declarations/src/links/splitLink.d.ts.map +0 -1
  155. package/dist/declarations/src/links/transformerLink.d.ts.map +0 -1
  156. package/dist/declarations/src/links/types.d.ts.map +0 -1
  157. package/dist/declarations/src/links/wsLink.d.ts.map +0 -1
  158. package/dist/declarations/src/rx/index.d.ts.map +0 -1
  159. package/dist/declarations/src/rx/observable.d.ts.map +0 -1
  160. package/dist/declarations/src/rx/operators/index.d.ts.map +0 -1
  161. package/dist/declarations/src/rx/operators/map.d.ts.map +0 -1
  162. package/dist/declarations/src/rx/operators/share.d.ts.map +0 -1
  163. package/dist/declarations/src/rx/operators/tap.d.ts.map +0 -1
  164. package/dist/declarations/src/rx/types.d.ts.map +0 -1
  165. package/dist/declarations/src/rx/util/identity.d.ts.map +0 -1
  166. package/dist/declarations/src/rx/util/observableToPromise.d.ts.map +0 -1
  167. package/dist/declarations/src/rx/util/pipe.d.ts.map +0 -1
  168. package/dist/httpUtils-299a66f6.cjs.prod.js +0 -89
  169. package/dist/observable-ccb54234.cjs.prod.js +0 -104
  170. package/dist/share-5a8c2543.cjs.prod.js +0 -106
  171. package/dist/tap-d907998d.cjs.prod.js +0 -32
  172. package/dist/trpc-client.cjs.d.ts +0 -1
  173. package/dist/trpc-client.cjs.dev.js +0 -300
  174. package/dist/trpc-client.cjs.js +0 -7
  175. package/links/httpBatchLink/package.json +0 -4
  176. package/links/httpLink/package.json +0 -4
  177. package/links/loggerLink/package.json +0 -4
  178. package/links/splitLink/package.json +0 -4
  179. package/links/transformerLink/package.json +0 -4
  180. package/links/wsLink/package.json +0 -4
  181. package/rx/operators/package.json +0 -4
  182. package/rx/package.json +0 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryDelay.d.ts","sourceRoot":"","sources":["../../src/internals/retryDelay.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,iBAAkB,MAAM,WACqB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { TRPCResponse } from '@trpc/server/rpc';
2
+ import { TRPCClientError } from '../TRPCClientError';
3
+ import { LinkRuntime } from '../links/types';
4
+ export declare function transformRPCResponse({ envelope, runtime, }: {
5
+ envelope: TRPCResponse;
6
+ runtime: LinkRuntime;
7
+ }): {
8
+ type: "started";
9
+ } | {
10
+ type: "stopped";
11
+ } | TRPCClientError<import("@trpc/server").AnyRouter<any>> | {
12
+ data: any;
13
+ type: "data";
14
+ };
15
+ //# sourceMappingURL=transformRPCResponse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformRPCResponse.d.ts","sourceRoot":"","sources":["../../src/internals/transformRPCResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,wBAAgB,oBAAoB,CAAC,EACnC,QAAQ,EACR,OAAO,GACR,EAAE;IACD,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;CACtB;;;;;;;EAcA"}
@@ -0,0 +1,4 @@
1
+ import { AnyRouter } from '@trpc/server';
2
+ import { TRPCLink } from './types';
3
+ export declare function dedupeLink<TRouter extends AnyRouter = AnyRouter>(): TRPCLink<TRouter>;
4
+ //# sourceMappingURL=dedupeLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dedupeLink.d.ts","sourceRoot":"","sources":["../../src/links/dedupeLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEnC,wBAAgB,UAAU,CACxB,OAAO,SAAS,SAAS,GAAG,SAAS,KAClC,QAAQ,CAAC,OAAO,CAAC,CA4CrB"}
@@ -0,0 +1,8 @@
1
+ import { AnyRouter } from '@trpc/server';
2
+ import { TRPCLink } from './types';
3
+ import { HTTPLinkOptions } from './httpUtils';
4
+ export interface HttpBatchLinkOptions extends HTTPLinkOptions {
5
+ maxBatchSize?: number;
6
+ }
7
+ export declare function httpBatchLink<TRouter extends AnyRouter>(opts: HttpBatchLinkOptions): TRPCLink<TRouter>;
8
+ //# sourceMappingURL=httpBatchLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpBatchLink.d.ts","sourceRoot":"","sources":["../../src/links/httpBatchLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAiB,MAAM,cAAc,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,eAAe,EAA8B,MAAM,aAAa,CAAC;AAE1E,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AACD,wBAAgB,aAAa,CAAC,OAAO,SAAS,SAAS,EACrD,IAAI,EAAE,oBAAoB,GACzB,QAAQ,CAAC,OAAO,CAAC,CA+DnB"}
@@ -0,0 +1,195 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var observable = require('../observable-85669100.js');
6
+ var httpUtils = require('../httpUtils-1f9e4e3c.js');
7
+ require('@babel/runtime/helpers/defineProperty');
8
+
9
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
10
+
11
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
12
+
13
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
14
+
15
+ /**
16
+ * Dataloader that's very inspired by https://github.com/graphql/dataloader
17
+ * Less configuration, no caching, and allows you to cancel requests
18
+ * When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
19
+ */
20
+ function dataLoader(fetchMany, opts) {
21
+ var batch = null;
22
+ var dispatchTimer = null;
23
+
24
+ var destroyTimerAndBatch = function destroyTimerAndBatch() {
25
+ clearTimeout(dispatchTimer);
26
+ dispatchTimer = null;
27
+ batch = null;
28
+ };
29
+
30
+ function dispatch() {
31
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
32
+ var batchCopy = batch;
33
+ destroyTimerAndBatch();
34
+
35
+ var _fetchMany = fetchMany(batchCopy.items.map(function (v) {
36
+ return v.key;
37
+ })),
38
+ promise = _fetchMany.promise,
39
+ cancel = _fetchMany.cancel;
40
+
41
+ batchCopy.cancel = cancel;
42
+ promise.then(function (result) {
43
+ for (var i = 0; i < result.length; i++) {
44
+ var _value = result[i];
45
+ batchCopy.items[i].resolve(_value);
46
+ }
47
+ }).catch(function (cause) {
48
+ var _iterator = _createForOfIteratorHelper(batchCopy.items),
49
+ _step;
50
+
51
+ try {
52
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
53
+ var item = _step.value;
54
+ item.reject(cause);
55
+ }
56
+ } catch (err) {
57
+ _iterator.e(err);
58
+ } finally {
59
+ _iterator.f();
60
+ }
61
+ });
62
+ }
63
+
64
+ function load(key) {
65
+ var batchItem = {
66
+ cancelled: false,
67
+ key: key
68
+ };
69
+
70
+ if (!batch) {
71
+ batch = {
72
+ items: [],
73
+ cancel: function cancel() {
74
+ destroyTimerAndBatch();
75
+ }
76
+ };
77
+ }
78
+
79
+ var thisBatch = batch;
80
+ var promise = new Promise(function (resolve, reject) {
81
+ var item = batchItem;
82
+ item.reject = reject;
83
+ item.resolve = resolve;
84
+ thisBatch.items.push(item);
85
+
86
+ if (typeof (opts === null || opts === void 0 ? void 0 : opts.maxBatchSize) !== 'undefined' && thisBatch.items.length >= opts.maxBatchSize) {
87
+ dispatch();
88
+ return;
89
+ }
90
+ });
91
+
92
+ if (!dispatchTimer) {
93
+ dispatchTimer = setTimeout(dispatch);
94
+ }
95
+
96
+ var cancel = function cancel() {
97
+ batchItem.cancelled = true;
98
+
99
+ if (thisBatch.items.some(function (item) {
100
+ return !item.cancelled;
101
+ })) {
102
+ // there are still things that can be resolved
103
+ return;
104
+ }
105
+
106
+ thisBatch.cancel();
107
+ };
108
+
109
+ return {
110
+ promise: promise,
111
+ cancel: cancel
112
+ };
113
+ }
114
+
115
+ return {
116
+ load: load
117
+ };
118
+ }
119
+
120
+ function httpBatchLink(opts) {
121
+ var url = opts.url; // initialized config
122
+
123
+ return function (runtime) {
124
+ var fetcher = function fetcher(type) {
125
+ return function (keyInputPairs) {
126
+ var path = keyInputPairs.map(function (op) {
127
+ return op.path;
128
+ }).join(',');
129
+ var inputs = keyInputPairs.map(function (op) {
130
+ return op.input;
131
+ });
132
+
133
+ var _httpRequest = httpUtils.httpRequest({
134
+ url: url,
135
+ inputs: inputs,
136
+ path: path,
137
+ runtime: runtime,
138
+ type: type
139
+ }),
140
+ promise = _httpRequest.promise,
141
+ cancel = _httpRequest.cancel;
142
+
143
+ return {
144
+ promise: promise.then(function (res) {
145
+ var resJSON = Array.isArray(res.json) ? res.json : keyInputPairs.map(function () {
146
+ return res.json;
147
+ });
148
+ var result = resJSON.map(function (item) {
149
+ return {
150
+ meta: res.meta,
151
+ json: item
152
+ };
153
+ });
154
+ return result;
155
+ }),
156
+ cancel: cancel
157
+ };
158
+ };
159
+ };
160
+
161
+ var query = dataLoader(fetcher('query'), opts);
162
+ var mutation = dataLoader(fetcher('mutation'), opts);
163
+ var subscription = dataLoader(fetcher('subscription'), opts);
164
+ var loaders = {
165
+ query: query,
166
+ subscription: subscription,
167
+ mutation: mutation
168
+ };
169
+ return function (_ref) {
170
+ var op = _ref.op;
171
+ return observable.observable(function (observer) {
172
+ var loader = loaders[op.type];
173
+
174
+ var _loader$load = loader.load(op),
175
+ promise = _loader$load.promise,
176
+ cancel = _loader$load.cancel;
177
+
178
+ promise.then(function (res) {
179
+ observer.next({
180
+ context: res.meta,
181
+ data: res.json
182
+ });
183
+ observer.complete();
184
+ }).catch(function (err) {
185
+ return observer.error(err);
186
+ });
187
+ return function () {
188
+ cancel();
189
+ };
190
+ });
191
+ };
192
+ };
193
+ }
194
+
195
+ exports.httpBatchLink = httpBatchLink;
@@ -0,0 +1,191 @@
1
+ import { o as observable } from '../observable-7e66cb56.mjs';
2
+ import { h as httpRequest } from '../httpUtils-c09d7b79.mjs';
3
+ import '@babel/runtime/helpers/defineProperty';
4
+
5
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
6
+
7
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8
+
9
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
10
+
11
+ /**
12
+ * Dataloader that's very inspired by https://github.com/graphql/dataloader
13
+ * Less configuration, no caching, and allows you to cancel requests
14
+ * When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
15
+ */
16
+ function dataLoader(fetchMany, opts) {
17
+ var batch = null;
18
+ var dispatchTimer = null;
19
+
20
+ var destroyTimerAndBatch = function destroyTimerAndBatch() {
21
+ clearTimeout(dispatchTimer);
22
+ dispatchTimer = null;
23
+ batch = null;
24
+ };
25
+
26
+ function dispatch() {
27
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
28
+ var batchCopy = batch;
29
+ destroyTimerAndBatch();
30
+
31
+ var _fetchMany = fetchMany(batchCopy.items.map(function (v) {
32
+ return v.key;
33
+ })),
34
+ promise = _fetchMany.promise,
35
+ cancel = _fetchMany.cancel;
36
+
37
+ batchCopy.cancel = cancel;
38
+ promise.then(function (result) {
39
+ for (var i = 0; i < result.length; i++) {
40
+ var _value = result[i];
41
+ batchCopy.items[i].resolve(_value);
42
+ }
43
+ }).catch(function (cause) {
44
+ var _iterator = _createForOfIteratorHelper(batchCopy.items),
45
+ _step;
46
+
47
+ try {
48
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
49
+ var item = _step.value;
50
+ item.reject(cause);
51
+ }
52
+ } catch (err) {
53
+ _iterator.e(err);
54
+ } finally {
55
+ _iterator.f();
56
+ }
57
+ });
58
+ }
59
+
60
+ function load(key) {
61
+ var batchItem = {
62
+ cancelled: false,
63
+ key: key
64
+ };
65
+
66
+ if (!batch) {
67
+ batch = {
68
+ items: [],
69
+ cancel: function cancel() {
70
+ destroyTimerAndBatch();
71
+ }
72
+ };
73
+ }
74
+
75
+ var thisBatch = batch;
76
+ var promise = new Promise(function (resolve, reject) {
77
+ var item = batchItem;
78
+ item.reject = reject;
79
+ item.resolve = resolve;
80
+ thisBatch.items.push(item);
81
+
82
+ if (typeof (opts === null || opts === void 0 ? void 0 : opts.maxBatchSize) !== 'undefined' && thisBatch.items.length >= opts.maxBatchSize) {
83
+ dispatch();
84
+ return;
85
+ }
86
+ });
87
+
88
+ if (!dispatchTimer) {
89
+ dispatchTimer = setTimeout(dispatch);
90
+ }
91
+
92
+ var cancel = function cancel() {
93
+ batchItem.cancelled = true;
94
+
95
+ if (thisBatch.items.some(function (item) {
96
+ return !item.cancelled;
97
+ })) {
98
+ // there are still things that can be resolved
99
+ return;
100
+ }
101
+
102
+ thisBatch.cancel();
103
+ };
104
+
105
+ return {
106
+ promise: promise,
107
+ cancel: cancel
108
+ };
109
+ }
110
+
111
+ return {
112
+ load: load
113
+ };
114
+ }
115
+
116
+ function httpBatchLink(opts) {
117
+ var url = opts.url; // initialized config
118
+
119
+ return function (runtime) {
120
+ var fetcher = function fetcher(type) {
121
+ return function (keyInputPairs) {
122
+ var path = keyInputPairs.map(function (op) {
123
+ return op.path;
124
+ }).join(',');
125
+ var inputs = keyInputPairs.map(function (op) {
126
+ return op.input;
127
+ });
128
+
129
+ var _httpRequest = httpRequest({
130
+ url: url,
131
+ inputs: inputs,
132
+ path: path,
133
+ runtime: runtime,
134
+ type: type
135
+ }),
136
+ promise = _httpRequest.promise,
137
+ cancel = _httpRequest.cancel;
138
+
139
+ return {
140
+ promise: promise.then(function (res) {
141
+ var resJSON = Array.isArray(res.json) ? res.json : keyInputPairs.map(function () {
142
+ return res.json;
143
+ });
144
+ var result = resJSON.map(function (item) {
145
+ return {
146
+ meta: res.meta,
147
+ json: item
148
+ };
149
+ });
150
+ return result;
151
+ }),
152
+ cancel: cancel
153
+ };
154
+ };
155
+ };
156
+
157
+ var query = dataLoader(fetcher('query'), opts);
158
+ var mutation = dataLoader(fetcher('mutation'), opts);
159
+ var subscription = dataLoader(fetcher('subscription'), opts);
160
+ var loaders = {
161
+ query: query,
162
+ subscription: subscription,
163
+ mutation: mutation
164
+ };
165
+ return function (_ref) {
166
+ var op = _ref.op;
167
+ return observable(function (observer) {
168
+ var loader = loaders[op.type];
169
+
170
+ var _loader$load = loader.load(op),
171
+ promise = _loader$load.promise,
172
+ cancel = _loader$load.cancel;
173
+
174
+ promise.then(function (res) {
175
+ observer.next({
176
+ context: res.meta,
177
+ data: res.json
178
+ });
179
+ observer.complete();
180
+ }).catch(function (err) {
181
+ return observer.error(err);
182
+ });
183
+ return function () {
184
+ cancel();
185
+ };
186
+ });
187
+ };
188
+ };
189
+ }
190
+
191
+ export { httpBatchLink };
@@ -0,0 +1 @@
1
+
@@ -1,5 +1,5 @@
1
- import { AnyRouter } from '@trpc/server';
2
- import { TRPCLink } from './types';
3
- import { HTTPLinkOptions } from './httpUtils';
4
- export declare function httpLink<TRouter extends AnyRouter>(opts: HTTPLinkOptions): TRPCLink<TRouter>;
1
+ import { AnyRouter } from '@trpc/server';
2
+ import { TRPCLink } from './types';
3
+ import { HTTPLinkOptions } from './httpUtils';
4
+ export declare function httpLink<TRouter extends AnyRouter>(opts: HTTPLinkOptions): TRPCLink<TRouter>;
5
5
  //# sourceMappingURL=httpLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpLink.d.ts","sourceRoot":"","sources":["../../src/links/httpLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,eAAe,EAAe,MAAM,aAAa,CAAC;AAE3D,wBAAgB,QAAQ,CAAC,OAAO,SAAS,SAAS,EAChD,IAAI,EAAE,eAAe,GACpB,QAAQ,CAAC,OAAO,CAAC,CA2BnB"}
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var observable = require('../observable-85669100.js');
6
+ var httpUtils = require('../httpUtils-1f9e4e3c.js');
7
+ require('@babel/runtime/helpers/defineProperty');
8
+
9
+ function httpLink(opts) {
10
+ var url = opts.url;
11
+ return function (runtime) {
12
+ return function (_ref) {
13
+ var op = _ref.op;
14
+ return observable.observable(function (observer) {
15
+ var path = op.path,
16
+ input = op.input,
17
+ type = op.type;
18
+
19
+ var _httpRequest = httpUtils.httpRequest({
20
+ runtime: runtime,
21
+ path: path,
22
+ input: input,
23
+ type: type,
24
+ url: url
25
+ }),
26
+ promise = _httpRequest.promise,
27
+ cancel = _httpRequest.cancel;
28
+
29
+ promise.then(function (res) {
30
+ observer.next({
31
+ context: res.meta,
32
+ data: res.json
33
+ });
34
+ observer.complete();
35
+ }).catch(observer.error);
36
+ return function () {
37
+ cancel();
38
+ };
39
+ });
40
+ };
41
+ };
42
+ }
43
+
44
+ exports.httpLink = httpLink;
@@ -0,0 +1,40 @@
1
+ import { o as observable } from '../observable-7e66cb56.mjs';
2
+ import { h as httpRequest } from '../httpUtils-c09d7b79.mjs';
3
+ import '@babel/runtime/helpers/defineProperty';
4
+
5
+ function httpLink(opts) {
6
+ var url = opts.url;
7
+ return function (runtime) {
8
+ return function (_ref) {
9
+ var op = _ref.op;
10
+ return observable(function (observer) {
11
+ var path = op.path,
12
+ input = op.input,
13
+ type = op.type;
14
+
15
+ var _httpRequest = httpRequest({
16
+ runtime: runtime,
17
+ path: path,
18
+ input: input,
19
+ type: type,
20
+ url: url
21
+ }),
22
+ promise = _httpRequest.promise,
23
+ cancel = _httpRequest.cancel;
24
+
25
+ promise.then(function (res) {
26
+ observer.next({
27
+ context: res.meta,
28
+ data: res.json
29
+ });
30
+ observer.complete();
31
+ }).catch(observer.error);
32
+ return function () {
33
+ cancel();
34
+ };
35
+ });
36
+ };
37
+ };
38
+ }
39
+
40
+ export { httpLink };
@@ -0,0 +1 @@
1
+
@@ -1,22 +1,22 @@
1
- import { ProcedureType } from '@trpc/server';
2
- import { LinkRuntime, PromiseAndCancel } from './types';
3
- export interface HTTPLinkOptions {
4
- url: string;
5
- }
6
- export interface ResponseShape {
7
- json: unknown;
8
- meta: {
9
- response: Response;
10
- };
11
- }
12
- export declare function httpRequest(props: {
13
- runtime: LinkRuntime;
14
- type: ProcedureType;
15
- path: string;
16
- url: string;
17
- } & ({
18
- inputs: unknown[];
19
- } | {
20
- input: unknown;
21
- })): PromiseAndCancel<ResponseShape>;
1
+ import { ProcedureType } from '@trpc/server';
2
+ import { LinkRuntime, PromiseAndCancel } from './types';
3
+ export interface HTTPLinkOptions {
4
+ url: string;
5
+ }
6
+ export interface ResponseShape {
7
+ json: unknown;
8
+ meta: {
9
+ response: Response;
10
+ };
11
+ }
12
+ export declare function httpRequest(props: {
13
+ runtime: LinkRuntime;
14
+ type: ProcedureType;
15
+ path: string;
16
+ url: string;
17
+ } & ({
18
+ inputs: unknown[];
19
+ } | {
20
+ input: unknown;
21
+ })): PromiseAndCancel<ResponseShape>;
22
22
  //# sourceMappingURL=httpUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpUtils.d.ts","sourceRoot":"","sources":["../../src/links/httpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACxD,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;CACb;AAiBD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE;QACJ,QAAQ,EAAE,QAAQ,CAAC;KACpB,CAAC;CACH;AACD,wBAAgB,WAAW,CACzB,KAAK,EAAE;IACL,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb,GAAG,CAAC;IAAE,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,GAC/C,gBAAgB,CAAC,aAAa,CAAC,CA2DjC"}
@@ -1,8 +1,8 @@
1
- import { AnyRouter } from '@trpc/server';
2
- import { Operation, OperationLink, OperationResultObservable } from '../types';
3
- /** @internal */
4
- export declare function createChain<TRouter extends AnyRouter, TInput = unknown, TOutput = unknown>(opts: {
5
- links: OperationLink<TRouter, TInput, TOutput>[];
6
- op: Operation<TInput>;
7
- }): OperationResultObservable<TRouter, TOutput>;
1
+ import { AnyRouter } from '@trpc/server';
2
+ import { Operation, OperationLink, OperationResultObservable } from '../types';
3
+ /** @internal */
4
+ export declare function createChain<TRouter extends AnyRouter, TInput = unknown, TOutput = unknown>(opts: {
5
+ links: OperationLink<TRouter, TInput, TOutput>[];
6
+ op: Operation<TInput>;
7
+ }): OperationResultObservable<TRouter, TOutput>;
8
8
  //# sourceMappingURL=createChain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createChain.d.ts","sourceRoot":"","sources":["../../../src/links/internals/createChain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAC;AAE/E,gBAAgB;AAChB,wBAAgB,WAAW,CACzB,OAAO,SAAS,SAAS,EACzB,MAAM,GAAG,OAAO,EAChB,OAAO,GAAG,OAAO,EACjB,IAAI,EAAE;IACN,KAAK,EAAE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACjD,EAAE,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;CACvB,GAAG,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAkB9C"}
@@ -1,16 +1,16 @@
1
- import { AnyRouter } from '@trpc/server';
2
- import { TRPCClientError } from '../../TRPCClientError';
3
- import { OperationResult } from '../types';
4
- /** @internal */
5
- export declare function transformOperationResult<TRouter extends AnyRouter, TOutput>(result: OperationResult<TRouter, TOutput>): {
6
- readonly ok: false;
7
- readonly error: TRPCClientError<TRouter>;
8
- readonly context: import("../types").OperationContext | undefined;
9
- readonly data?: undefined;
10
- } | {
11
- readonly ok: true;
12
- readonly data: TOutput;
13
- readonly context: import("../types").OperationContext | undefined;
14
- readonly error?: undefined;
15
- };
1
+ import { AnyRouter } from '@trpc/server';
2
+ import { TRPCClientError } from '../../TRPCClientError';
3
+ import { OperationResult } from '../types';
4
+ /** @internal */
5
+ export declare function transformOperationResult<TRouter extends AnyRouter, TOutput>(result: OperationResult<TRouter, TOutput>): {
6
+ readonly ok: false;
7
+ readonly error: TRPCClientError<TRouter>;
8
+ readonly context: import("../types").OperationContext | undefined;
9
+ readonly data?: undefined;
10
+ } | {
11
+ readonly ok: true;
12
+ readonly data: TOutput;
13
+ readonly context: import("../types").OperationContext | undefined;
14
+ readonly error?: undefined;
15
+ };
16
16
  //# sourceMappingURL=transformOperationResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformOperationResult.d.ts","sourceRoot":"","sources":["../../../src/links/internals/transformOperationResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,gBAAgB;AAChB,wBAAgB,wBAAwB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,EACzE,MAAM,EAAE,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC;;;;;;;;;;EAkB1C"}