@trpc/client 10.0.0-alpha.0 → 10.0.0-alpha.4

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 (180) 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} +30 -16
  16. package/dist/{trpc-client.esm.js → index.mjs} +19 -15
  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 +14 -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/{declarations/src/links → links}/httpBatchLink.d.ts +4 -4
  31. package/dist/links/httpBatchLink.d.ts.map +1 -0
  32. package/dist/links/httpBatchLink.js +189 -0
  33. package/dist/links/httpBatchLink.mjs +185 -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 +384 -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 +85 -60
  125. package/links/wsLink/dist/trpc-client-links-wsLink.cjs.prod.js +85 -60
  126. package/links/wsLink/dist/trpc-client-links-wsLink.esm.js +85 -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/links/wsLink.ts +1 -0
  135. package/dist/TRPCClientError-a5312a5f.cjs.dev.js +0 -74
  136. package/dist/TRPCClientError-ea7d89b2.cjs.prod.js +0 -74
  137. package/dist/createChain-e45e052a.cjs.prod.js +0 -27
  138. package/dist/declarations/src/TRPCClientError.d.ts.map +0 -1
  139. package/dist/declarations/src/createTRPCClient.d.ts.map +0 -1
  140. package/dist/declarations/src/getFetch.d.ts.map +0 -1
  141. package/dist/declarations/src/index.d.ts.map +0 -1
  142. package/dist/declarations/src/internals/TRPCClient.d.ts.map +0 -1
  143. package/dist/declarations/src/internals/dataLoader.d.ts.map +0 -1
  144. package/dist/declarations/src/internals/fetchHelpers.d.ts.map +0 -1
  145. package/dist/declarations/src/internals/retryDelay.d.ts.map +0 -1
  146. package/dist/declarations/src/links/httpBatchLink.d.ts.map +0 -1
  147. package/dist/declarations/src/links/httpLink.d.ts.map +0 -1
  148. package/dist/declarations/src/links/httpUtils.d.ts.map +0 -1
  149. package/dist/declarations/src/links/internals/createChain.d.ts.map +0 -1
  150. package/dist/declarations/src/links/internals/transformOperationResult.d.ts.map +0 -1
  151. package/dist/declarations/src/links/loggerLink.d.ts.map +0 -1
  152. package/dist/declarations/src/links/splitLink.d.ts.map +0 -1
  153. package/dist/declarations/src/links/transformerLink.d.ts.map +0 -1
  154. package/dist/declarations/src/links/types.d.ts.map +0 -1
  155. package/dist/declarations/src/links/wsLink.d.ts.map +0 -1
  156. package/dist/declarations/src/rx/index.d.ts.map +0 -1
  157. package/dist/declarations/src/rx/observable.d.ts.map +0 -1
  158. package/dist/declarations/src/rx/operators/index.d.ts.map +0 -1
  159. package/dist/declarations/src/rx/operators/map.d.ts.map +0 -1
  160. package/dist/declarations/src/rx/operators/share.d.ts.map +0 -1
  161. package/dist/declarations/src/rx/operators/tap.d.ts.map +0 -1
  162. package/dist/declarations/src/rx/types.d.ts.map +0 -1
  163. package/dist/declarations/src/rx/util/identity.d.ts.map +0 -1
  164. package/dist/declarations/src/rx/util/observableToPromise.d.ts.map +0 -1
  165. package/dist/declarations/src/rx/util/pipe.d.ts.map +0 -1
  166. package/dist/httpUtils-299a66f6.cjs.prod.js +0 -89
  167. package/dist/observable-ccb54234.cjs.prod.js +0 -104
  168. package/dist/share-5a8c2543.cjs.prod.js +0 -106
  169. package/dist/tap-d907998d.cjs.prod.js +0 -32
  170. package/dist/trpc-client.cjs.d.ts +0 -1
  171. package/dist/trpc-client.cjs.dev.js +0 -300
  172. package/dist/trpc-client.cjs.js +0 -7
  173. package/links/httpBatchLink/package.json +0 -4
  174. package/links/httpLink/package.json +0 -4
  175. package/links/loggerLink/package.json +0 -4
  176. package/links/splitLink/package.json +0 -4
  177. package/links/transformerLink/package.json +0 -4
  178. package/links/wsLink/package.json +0 -4
  179. package/rx/operators/package.json +0 -4
  180. package/rx/package.json +0 -4
@@ -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"}
@@ -1,5 +1,5 @@
1
- import { AnyRouter } from '@trpc/server';
2
- import { TRPCLink } from './types';
3
- import { HTTPLinkOptions } from './httpUtils';
4
- export declare function httpBatchLink<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 httpBatchLink<TRouter extends AnyRouter>(opts: HTTPLinkOptions): TRPCLink<TRouter>;
5
5
  //# 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,wBAAgB,aAAa,CAAC,OAAO,SAAS,SAAS,EACrD,IAAI,EAAE,eAAe,GACpB,QAAQ,CAAC,OAAO,CAAC,CA4DnB"}
@@ -0,0 +1,189 @@
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) {
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
+
87
+ if (!dispatchTimer) {
88
+ dispatchTimer = setTimeout(dispatch);
89
+ }
90
+
91
+ var cancel = function cancel() {
92
+ batchItem.cancelled = true;
93
+
94
+ if (thisBatch.items.some(function (item) {
95
+ return !item.cancelled;
96
+ })) {
97
+ // there are still things that can be resolved
98
+ return;
99
+ }
100
+
101
+ thisBatch.cancel();
102
+ };
103
+
104
+ return {
105
+ promise: promise,
106
+ cancel: cancel
107
+ };
108
+ }
109
+
110
+ return {
111
+ load: load
112
+ };
113
+ }
114
+
115
+ function httpBatchLink(opts) {
116
+ var url = opts.url;
117
+ return function (runtime) {
118
+ var fetcher = function fetcher(type) {
119
+ return function (keyInputPairs) {
120
+ var path = keyInputPairs.map(function (op) {
121
+ return op.path;
122
+ }).join(',');
123
+ var inputs = keyInputPairs.map(function (op) {
124
+ return op.input;
125
+ });
126
+
127
+ var _httpRequest = httpUtils.httpRequest({
128
+ url: url,
129
+ inputs: inputs,
130
+ path: path,
131
+ runtime: runtime,
132
+ type: type
133
+ }),
134
+ promise = _httpRequest.promise,
135
+ cancel = _httpRequest.cancel;
136
+
137
+ return {
138
+ promise: promise.then(function (res) {
139
+ var resJSON = Array.isArray(res.json) ? res.json : keyInputPairs.map(function () {
140
+ return res.json;
141
+ });
142
+ var result = resJSON.map(function (item) {
143
+ return {
144
+ meta: res.meta,
145
+ json: item
146
+ };
147
+ });
148
+ return result;
149
+ }),
150
+ cancel: cancel
151
+ };
152
+ };
153
+ };
154
+
155
+ var query = dataLoader(fetcher('query'));
156
+ var mutation = dataLoader(fetcher('mutation'));
157
+ var subscription = dataLoader(fetcher('subscription'));
158
+ var loaders = {
159
+ query: query,
160
+ subscription: subscription,
161
+ mutation: mutation
162
+ };
163
+ return function (_ref) {
164
+ var op = _ref.op;
165
+ return observable.observable(function (observer) {
166
+ var loader = loaders[op.type];
167
+
168
+ var _loader$load = loader.load(op),
169
+ promise = _loader$load.promise,
170
+ cancel = _loader$load.cancel;
171
+
172
+ promise.then(function (res) {
173
+ observer.next({
174
+ context: res.meta,
175
+ data: res.json
176
+ });
177
+ observer.complete();
178
+ }).catch(function (err) {
179
+ return observer.error(err);
180
+ });
181
+ return function () {
182
+ cancel();
183
+ };
184
+ });
185
+ };
186
+ };
187
+ }
188
+
189
+ exports.httpBatchLink = httpBatchLink;
@@ -0,0 +1,185 @@
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) {
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
+
83
+ if (!dispatchTimer) {
84
+ dispatchTimer = setTimeout(dispatch);
85
+ }
86
+
87
+ var cancel = function cancel() {
88
+ batchItem.cancelled = true;
89
+
90
+ if (thisBatch.items.some(function (item) {
91
+ return !item.cancelled;
92
+ })) {
93
+ // there are still things that can be resolved
94
+ return;
95
+ }
96
+
97
+ thisBatch.cancel();
98
+ };
99
+
100
+ return {
101
+ promise: promise,
102
+ cancel: cancel
103
+ };
104
+ }
105
+
106
+ return {
107
+ load: load
108
+ };
109
+ }
110
+
111
+ function httpBatchLink(opts) {
112
+ var url = opts.url;
113
+ return function (runtime) {
114
+ var fetcher = function fetcher(type) {
115
+ return function (keyInputPairs) {
116
+ var path = keyInputPairs.map(function (op) {
117
+ return op.path;
118
+ }).join(',');
119
+ var inputs = keyInputPairs.map(function (op) {
120
+ return op.input;
121
+ });
122
+
123
+ var _httpRequest = httpRequest({
124
+ url: url,
125
+ inputs: inputs,
126
+ path: path,
127
+ runtime: runtime,
128
+ type: type
129
+ }),
130
+ promise = _httpRequest.promise,
131
+ cancel = _httpRequest.cancel;
132
+
133
+ return {
134
+ promise: promise.then(function (res) {
135
+ var resJSON = Array.isArray(res.json) ? res.json : keyInputPairs.map(function () {
136
+ return res.json;
137
+ });
138
+ var result = resJSON.map(function (item) {
139
+ return {
140
+ meta: res.meta,
141
+ json: item
142
+ };
143
+ });
144
+ return result;
145
+ }),
146
+ cancel: cancel
147
+ };
148
+ };
149
+ };
150
+
151
+ var query = dataLoader(fetcher('query'));
152
+ var mutation = dataLoader(fetcher('mutation'));
153
+ var subscription = dataLoader(fetcher('subscription'));
154
+ var loaders = {
155
+ query: query,
156
+ subscription: subscription,
157
+ mutation: mutation
158
+ };
159
+ return function (_ref) {
160
+ var op = _ref.op;
161
+ return observable(function (observer) {
162
+ var loader = loaders[op.type];
163
+
164
+ var _loader$load = loader.load(op),
165
+ promise = _loader$load.promise,
166
+ cancel = _loader$load.cancel;
167
+
168
+ promise.then(function (res) {
169
+ observer.next({
170
+ context: res.meta,
171
+ data: res.json
172
+ });
173
+ observer.complete();
174
+ }).catch(function (err) {
175
+ return observer.error(err);
176
+ });
177
+ return function () {
178
+ cancel();
179
+ };
180
+ });
181
+ };
182
+ };
183
+ }
184
+
185
+ 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"}