@trpc/client 9.18.0 → 10.0.0-alpha.3

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 (208) hide show
  1. package/dist/TRPCClientError-17b117e1.mjs +81 -0
  2. package/dist/TRPCClientError-ec6bd2ca.js +94 -0
  3. package/dist/{declarations/src/TRPCClientError.d.ts → TRPCClientError.d.ts} +29 -33
  4. package/dist/TRPCClientError.d.ts.map +1 -0
  5. package/dist/createChain-389cc116.mjs +25 -0
  6. package/dist/createChain-864dbb30.js +27 -0
  7. package/dist/{declarations/src/createTRPCClient.d.ts → createTRPCClient.d.ts} +5 -6
  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-1f9e4e3c.js +97 -0
  12. package/dist/httpUtils-c09d7b79.mjs +91 -0
  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/index.js +314 -0
  16. package/dist/index.mjs +299 -0
  17. package/dist/index.ts.js +1 -0
  18. package/dist/{declarations/src/internals → internals}/TRPCClient.d.ts +64 -61
  19. package/dist/internals/TRPCClient.d.ts.map +1 -0
  20. package/dist/{declarations/src/internals → internals}/dataLoader.d.ts +14 -16
  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 +5 -0
  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 -3
  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/links/httpUtils.d.ts +22 -0
  41. package/dist/links/httpUtils.d.ts.map +1 -0
  42. package/dist/links/internals/createChain.d.ts +8 -0
  43. package/dist/links/internals/createChain.d.ts.map +1 -0
  44. package/dist/links/internals/transformOperationResult.d.ts +16 -0
  45. package/dist/links/internals/transformOperationResult.d.ts.map +1 -0
  46. package/dist/{declarations/src/links → links}/loggerLink.d.ts +38 -37
  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/links/splitLink.d.ts +14 -0
  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/links/transformerLink.d.ts +4 -0
  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/links/types.d.ts +40 -0
  64. package/dist/links/types.d.ts.map +1 -0
  65. package/dist/{declarations/src/links → links}/wsLink.d.ts +19 -26
  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-7e66cb56.mjs +102 -0
  71. package/dist/observable-85669100.js +104 -0
  72. package/dist/rx/index.d.ts +3 -0
  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/rx/observable.d.ts +4 -0
  78. package/dist/rx/observable.d.ts.map +1 -0
  79. package/dist/rx/operators/index.d.ts +4 -0
  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/rx/operators/map.d.ts +3 -0
  85. package/dist/rx/operators/map.d.ts.map +1 -0
  86. package/dist/rx/operators/share.d.ts +6 -0
  87. package/dist/rx/operators/share.d.ts.map +1 -0
  88. package/dist/rx/operators/tap.d.ts +3 -0
  89. package/dist/rx/operators/tap.d.ts.map +1 -0
  90. package/dist/rx/types.d.ts +29 -0
  91. package/dist/rx/types.d.ts.map +1 -0
  92. package/dist/rx/util/identity.d.ts +2 -0
  93. package/dist/rx/util/identity.d.ts.map +1 -0
  94. package/dist/rx/util/observableToPromise.d.ts +10 -0
  95. package/dist/rx/util/observableToPromise.d.ts.map +1 -0
  96. package/dist/rx/util/pipe.d.ts +4 -0
  97. package/dist/rx/util/pipe.d.ts.map +1 -0
  98. package/dist/share-4d79dc49.js +110 -0
  99. package/dist/share-671b63fa.mjs +108 -0
  100. package/dist/tap-538fa07f.mjs +30 -0
  101. package/dist/tap-799a2d33.js +32 -0
  102. package/links/httpBatchLink/index.d.ts +1 -0
  103. package/links/httpBatchLink/index.js +1 -0
  104. package/links/httpLink/index.d.ts +1 -0
  105. package/links/httpLink/index.js +1 -0
  106. package/links/loggerLink/index.d.ts +1 -0
  107. package/links/loggerLink/index.js +1 -0
  108. package/links/splitLink/index.d.ts +1 -0
  109. package/links/splitLink/index.js +1 -0
  110. package/links/transformerLink/index.d.ts +1 -0
  111. package/links/transformerLink/index.js +1 -0
  112. package/links/wsLink/index.d.ts +1 -0
  113. package/links/wsLink/index.js +1 -0
  114. package/package.json +58 -18
  115. package/rx/dist/trpc-client-rx.cjs.d.ts +1 -0
  116. package/rx/dist/trpc-client-rx.cjs.dev.js +9 -0
  117. package/rx/dist/trpc-client-rx.cjs.js +7 -0
  118. package/rx/dist/trpc-client-rx.cjs.prod.js +9 -0
  119. package/rx/dist/trpc-client-rx.esm.js +1 -0
  120. package/rx/index.d.ts +1 -0
  121. package/rx/index.js +1 -0
  122. package/rx/operators/dist/trpc-client-rx-operators.cjs.d.ts +1 -0
  123. package/rx/operators/dist/trpc-client-rx-operators.cjs.dev.js +39 -0
  124. package/rx/operators/dist/trpc-client-rx-operators.cjs.js +7 -0
  125. package/rx/operators/dist/trpc-client-rx-operators.cjs.prod.js +39 -0
  126. package/rx/operators/dist/trpc-client-rx-operators.esm.js +33 -0
  127. package/rx/operators/index.d.ts +1 -0
  128. package/rx/operators/index.js +1 -0
  129. package/src/TRPCClientError.ts +17 -21
  130. package/src/createTRPCClient.ts +4 -3
  131. package/src/index.ts +1 -1
  132. package/src/internals/TRPCClient.ts +80 -88
  133. package/src/internals/dataLoader.ts +2 -14
  134. package/src/internals/transformRPCResponse.ts +2 -2
  135. package/src/links/dedupeLink.test.ts +134 -0
  136. package/src/links/dedupeLink.ts +53 -0
  137. package/src/links/httpBatchLink.ts +36 -52
  138. package/src/links/httpLink.ts +26 -37
  139. package/src/{internals/httpRequest.ts → links/httpUtils.ts} +30 -21
  140. package/src/links/internals/createChain.test.ts +132 -0
  141. package/src/links/internals/createChain.ts +31 -0
  142. package/src/links/internals/transformOperationResult.ts +25 -0
  143. package/src/links/loggerLink.ts +40 -22
  144. package/src/links/retryLink.ts +45 -14
  145. package/src/links/splitLink.test.ts +56 -0
  146. package/src/links/splitLink.ts +23 -38
  147. package/src/links/transformerLink.ts +70 -0
  148. package/src/links/{core.ts → types.ts} +40 -46
  149. package/src/links/wsLink.ts +56 -77
  150. package/src/rx/index.ts +2 -0
  151. package/src/rx/observable.test.ts +83 -0
  152. package/src/rx/observable.ts +70 -0
  153. package/src/rx/operators/index.ts +3 -0
  154. package/src/rx/operators/map.test.ts +92 -0
  155. package/src/rx/operators/map.ts +25 -0
  156. package/src/rx/operators/share.test.ts +60 -0
  157. package/src/rx/operators/share.ts +67 -0
  158. package/src/rx/operators/tap.ts +26 -0
  159. package/src/rx/types.ts +69 -0
  160. package/src/rx/util/identity.ts +3 -0
  161. package/src/rx/util/observableToPromise.ts +49 -0
  162. package/src/rx/util/pipe.ts +22 -0
  163. package/dist/TRPCClientError-09b8a26b.esm.js +0 -77
  164. package/dist/TRPCClientError-bfee2bf5.cjs.dev.js +0 -79
  165. package/dist/TRPCClientError-e9bf96e9.cjs.prod.js +0 -79
  166. package/dist/declarations/src/TRPCClientError.d.ts.map +0 -1
  167. package/dist/declarations/src/createTRPCClient.d.ts.map +0 -1
  168. package/dist/declarations/src/getFetch.d.ts.map +0 -1
  169. package/dist/declarations/src/index.d.ts.map +0 -1
  170. package/dist/declarations/src/internals/TRPCAbortError.d.ts +0 -4
  171. package/dist/declarations/src/internals/TRPCAbortError.d.ts.map +0 -1
  172. package/dist/declarations/src/internals/TRPCClient.d.ts.map +0 -1
  173. package/dist/declarations/src/internals/dataLoader.d.ts.map +0 -1
  174. package/dist/declarations/src/internals/executeChain.d.ts +0 -8
  175. package/dist/declarations/src/internals/executeChain.d.ts.map +0 -1
  176. package/dist/declarations/src/internals/fetchHelpers.d.ts.map +0 -1
  177. package/dist/declarations/src/internals/httpRequest.d.ts +0 -14
  178. package/dist/declarations/src/internals/httpRequest.d.ts.map +0 -1
  179. package/dist/declarations/src/internals/observable.d.ts +0 -18
  180. package/dist/declarations/src/internals/observable.d.ts.map +0 -1
  181. package/dist/declarations/src/internals/retryDelay.d.ts.map +0 -1
  182. package/dist/declarations/src/internals/transformRPCResponse.d.ts +0 -7
  183. package/dist/declarations/src/internals/transformRPCResponse.d.ts.map +0 -1
  184. package/dist/declarations/src/links/core.d.ts +0 -45
  185. package/dist/declarations/src/links/core.d.ts.map +0 -1
  186. package/dist/declarations/src/links/httpBatchLink.d.ts +0 -7
  187. package/dist/declarations/src/links/httpBatchLink.d.ts.map +0 -1
  188. package/dist/declarations/src/links/httpLink.d.ts.map +0 -1
  189. package/dist/declarations/src/links/loggerLink.d.ts.map +0 -1
  190. package/dist/declarations/src/links/splitLink.d.ts +0 -24
  191. package/dist/declarations/src/links/splitLink.d.ts.map +0 -1
  192. package/dist/declarations/src/links/wsLink.d.ts.map +0 -1
  193. package/dist/transformRPCResponse-57e80136.cjs.dev.js +0 -133
  194. package/dist/transformRPCResponse-739c13d0.cjs.prod.js +0 -133
  195. package/dist/transformRPCResponse-f7f8b0e1.esm.js +0 -129
  196. package/dist/trpc-client.cjs.d.ts +0 -1
  197. package/dist/trpc-client.cjs.dev.js +0 -379
  198. package/dist/trpc-client.cjs.js +0 -7
  199. package/dist/trpc-client.cjs.prod.js +0 -379
  200. package/dist/trpc-client.esm.js +0 -374
  201. package/links/httpBatchLink/package.json +0 -4
  202. package/links/httpLink/package.json +0 -4
  203. package/links/loggerLink/package.json +0 -4
  204. package/links/splitLink/package.json +0 -4
  205. package/links/wsLink/package.json +0 -4
  206. package/src/internals/TRPCAbortError.ts +0 -7
  207. package/src/internals/executeChain.ts +0 -67
  208. package/src/internals/observable.ts +0 -89
package/dist/index.js ADDED
@@ -0,0 +1,314 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
6
+ var _createClass = require('@babel/runtime/helpers/createClass');
7
+ var links_httpBatchLink = require('./links/httpBatchLink.js');
8
+ var createChain = require('./createChain-864dbb30.js');
9
+ var TRPCClientError = require('./TRPCClientError-ec6bd2ca.js');
10
+ var share = require('./share-4d79dc49.js');
11
+ var _assertThisInitialized = require('@babel/runtime/helpers/assertThisInitialized');
12
+ var _inherits = require('@babel/runtime/helpers/inherits');
13
+ var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
14
+ var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
15
+ var _wrapNativeSuper = require('@babel/runtime/helpers/wrapNativeSuper');
16
+ require('./observable-85669100.js');
17
+ require('./httpUtils-1f9e4e3c.js');
18
+ require('@babel/runtime/helpers/defineProperty');
19
+
20
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
+
22
+ var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
23
+ var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
24
+ var _assertThisInitialized__default = /*#__PURE__*/_interopDefaultLegacy(_assertThisInitialized);
25
+ var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
26
+ var _possibleConstructorReturn__default = /*#__PURE__*/_interopDefaultLegacy(_possibleConstructorReturn);
27
+ var _getPrototypeOf__default = /*#__PURE__*/_interopDefaultLegacy(_getPrototypeOf);
28
+ var _wrapNativeSuper__default = /*#__PURE__*/_interopDefaultLegacy(_wrapNativeSuper);
29
+
30
+ function getWindow() {
31
+ if (typeof window !== 'undefined') {
32
+ return window;
33
+ }
34
+
35
+ return global;
36
+ }
37
+ function getAbortController(ac) {
38
+ var win = getWindow();
39
+ return ac || win.AbortController || null;
40
+ }
41
+
42
+ function getFetch(f) {
43
+ if (f) {
44
+ return f;
45
+ }
46
+
47
+ var win = getWindow();
48
+
49
+ if (win.fetch) {
50
+ return typeof win.fetch.bind === 'function' ? win.fetch.bind(win) : win.fetch;
51
+ }
52
+
53
+ throw new Error('No fetch implementation found');
54
+ }
55
+
56
+ /** @internal */
57
+ function transformOperationResult(result) {
58
+ var context = result.context;
59
+
60
+ if ('error' in result.data) {
61
+ var error = TRPCClientError.TRPCClientError.from(result.data);
62
+ return {
63
+ ok: false,
64
+ error: error,
65
+ context: context
66
+ };
67
+ }
68
+
69
+ var data = result.data.result.data;
70
+ return {
71
+ ok: true,
72
+ data: data,
73
+ context: context
74
+ };
75
+ }
76
+
77
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf__default["default"](Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf__default["default"](this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn__default["default"](this, result); }; }
78
+
79
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
80
+
81
+ var ObservableAbortError = /*#__PURE__*/function (_Error) {
82
+ _inherits__default["default"](ObservableAbortError, _Error);
83
+
84
+ var _super = /*#__PURE__*/_createSuper(ObservableAbortError);
85
+
86
+ function ObservableAbortError(message) {
87
+ var _this;
88
+
89
+ _classCallCheck__default["default"](this, ObservableAbortError);
90
+
91
+ _this = _super.call(this, message);
92
+ _this.name = 'ObservableAbortError';
93
+ Object.setPrototypeOf(_assertThisInitialized__default["default"](_this), ObservableAbortError.prototype);
94
+ return _this;
95
+ }
96
+
97
+ return ObservableAbortError;
98
+ }( /*#__PURE__*/_wrapNativeSuper__default["default"](Error));
99
+ /** @internal */
100
+
101
+ function observableToPromise(observable) {
102
+ var abort;
103
+ var promise = new Promise(function (resolve, reject) {
104
+ var isDone = false;
105
+
106
+ function onDone() {
107
+ if (isDone) {
108
+ return;
109
+ }
110
+
111
+ isDone = true;
112
+ reject(new ObservableAbortError('This operation was cancelled.'));
113
+ obs$.unsubscribe();
114
+ }
115
+
116
+ var obs$ = observable.subscribe({
117
+ next: function next(data) {
118
+ isDone = true;
119
+ resolve(data);
120
+ onDone();
121
+ },
122
+ error: function error(data) {
123
+ isDone = true;
124
+ reject(data);
125
+ onDone();
126
+ },
127
+ complete: function complete() {
128
+ isDone = true;
129
+ onDone();
130
+ }
131
+ });
132
+ abort = onDone;
133
+ });
134
+ return {
135
+ promise: promise,
136
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
137
+ abort: abort
138
+ };
139
+ }
140
+
141
+ var idCounter = 0;
142
+
143
+ function getRequestId() {
144
+ return ++idCounter;
145
+ }
146
+
147
+ var TRPCClient = /*#__PURE__*/function () {
148
+ function TRPCClient(opts) {
149
+ var _this = this;
150
+
151
+ _classCallCheck__default["default"](this, TRPCClient);
152
+
153
+ this.links = void 0;
154
+ this.runtime = void 0;
155
+
156
+ var _fetch = getFetch(opts === null || opts === void 0 ? void 0 : opts.fetch);
157
+
158
+ var AC = getAbortController(opts === null || opts === void 0 ? void 0 : opts.AbortController);
159
+
160
+ function getHeadersFn() {
161
+ if (opts.headers) {
162
+ var headers = opts.headers;
163
+ return typeof headers === 'function' ? headers : function () {
164
+ return headers;
165
+ };
166
+ }
167
+
168
+ return function () {
169
+ return {};
170
+ };
171
+ }
172
+
173
+ this.runtime = {
174
+ AbortController: AC,
175
+ fetch: _fetch,
176
+ headers: getHeadersFn()
177
+ };
178
+
179
+ if ('links' in opts) {
180
+ this.links = opts.links.map(function (link) {
181
+ return link(_this.runtime);
182
+ });
183
+ } else {
184
+ this.links = [links_httpBatchLink.httpBatchLink({
185
+ url: opts.url
186
+ })(this.runtime)];
187
+ }
188
+ }
189
+
190
+ _createClass__default["default"](TRPCClient, [{
191
+ key: "$request",
192
+ value: function $request(_ref) {
193
+ var type = _ref.type,
194
+ input = _ref.input,
195
+ path = _ref.path,
196
+ _ref$context = _ref.context,
197
+ context = _ref$context === void 0 ? {} : _ref$context;
198
+ var chain$ = createChain.createChain({
199
+ links: this.links,
200
+ op: {
201
+ id: getRequestId(),
202
+ type: type,
203
+ path: path,
204
+ input: input,
205
+ context: context
206
+ }
207
+ });
208
+ return chain$.pipe(share.share());
209
+ }
210
+ }, {
211
+ key: "requestAsPromise",
212
+ value: function requestAsPromise(opts) {
213
+ var req$ = this.$request(opts);
214
+
215
+ var _observableToPromise = observableToPromise(req$),
216
+ promise = _observableToPromise.promise,
217
+ abort = _observableToPromise.abort;
218
+
219
+ var cancellablePromise = new Promise(function (resolve, reject) {
220
+ promise.then(function (result) {
221
+ var transformed = transformOperationResult(result);
222
+
223
+ if (transformed.ok) {
224
+ resolve(transformed.data);
225
+ return;
226
+ }
227
+
228
+ reject(transformed.error);
229
+ }).catch(function (err) {
230
+ reject(TRPCClientError.TRPCClientError.from(err));
231
+ });
232
+ });
233
+ cancellablePromise.cancel = abort;
234
+ return cancellablePromise;
235
+ }
236
+ }, {
237
+ key: "query",
238
+ value: function query(path) {
239
+ var _ref2;
240
+
241
+ var context = (_ref2 = arguments.length <= 2 ? undefined : arguments[2]) === null || _ref2 === void 0 ? void 0 : _ref2.context;
242
+ return this.requestAsPromise({
243
+ type: 'query',
244
+ path: path,
245
+ input: arguments.length <= 1 ? undefined : arguments[1],
246
+ context: context
247
+ });
248
+ }
249
+ }, {
250
+ key: "mutation",
251
+ value: function mutation(path) {
252
+ var _ref3;
253
+
254
+ var context = (_ref3 = arguments.length <= 2 ? undefined : arguments[2]) === null || _ref3 === void 0 ? void 0 : _ref3.context;
255
+ return this.requestAsPromise({
256
+ type: 'mutation',
257
+ path: path,
258
+ input: arguments.length <= 1 ? undefined : arguments[1],
259
+ context: context
260
+ });
261
+ }
262
+ }, {
263
+ key: "subscription",
264
+ value: function subscription(path, input, opts) {
265
+ var observable$ = this.$request({
266
+ type: 'subscription',
267
+ path: path,
268
+ input: input,
269
+ context: opts.context
270
+ });
271
+ var observer = observable$.subscribe({
272
+ next: function next(result) {
273
+ var _opts$next;
274
+
275
+ if ('error' in result.data) {
276
+ var _opts$error;
277
+
278
+ var err = TRPCClientError.TRPCClientError.from(result.data, {
279
+ meta: result.context
280
+ });
281
+ (_opts$error = opts.error) === null || _opts$error === void 0 ? void 0 : _opts$error.call(opts, err);
282
+ return;
283
+ }
284
+
285
+ (_opts$next = opts.next) === null || _opts$next === void 0 ? void 0 : _opts$next.call(opts, result.data.result);
286
+ },
287
+ error: function error(err) {
288
+ var _opts$error2;
289
+
290
+ (_opts$error2 = opts.error) === null || _opts$error2 === void 0 ? void 0 : _opts$error2.call(opts, err);
291
+ },
292
+ complete: function complete() {
293
+ var _opts$complete;
294
+
295
+ (_opts$complete = opts.complete) === null || _opts$complete === void 0 ? void 0 : _opts$complete.call(opts);
296
+ }
297
+ });
298
+ return function () {
299
+ observer.unsubscribe();
300
+ };
301
+ }
302
+ }]);
303
+
304
+ return TRPCClient;
305
+ }();
306
+
307
+ /* eslint-disable @typescript-eslint/no-explicit-any */
308
+ function createTRPCClient(opts) {
309
+ return new TRPCClient(opts);
310
+ }
311
+
312
+ exports.TRPCClientError = TRPCClientError.TRPCClientError;
313
+ exports.createTRPCClient = createTRPCClient;
314
+ exports.getFetch = getFetch;
package/dist/index.mjs ADDED
@@ -0,0 +1,299 @@
1
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
+ import _createClass from '@babel/runtime/helpers/createClass';
3
+ import { httpBatchLink } from './links/httpBatchLink.mjs';
4
+ import { c as createChain } from './createChain-389cc116.mjs';
5
+ import { T as TRPCClientError } from './TRPCClientError-17b117e1.mjs';
6
+ export { T as TRPCClientError } from './TRPCClientError-17b117e1.mjs';
7
+ import { s as share } from './share-671b63fa.mjs';
8
+ import _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';
9
+ import _inherits from '@babel/runtime/helpers/inherits';
10
+ import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
11
+ import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
12
+ import _wrapNativeSuper from '@babel/runtime/helpers/wrapNativeSuper';
13
+ import './observable-7e66cb56.mjs';
14
+ import './httpUtils-c09d7b79.mjs';
15
+ import '@babel/runtime/helpers/defineProperty';
16
+
17
+ function getWindow() {
18
+ if (typeof window !== 'undefined') {
19
+ return window;
20
+ }
21
+
22
+ return global;
23
+ }
24
+ function getAbortController(ac) {
25
+ var win = getWindow();
26
+ return ac || win.AbortController || null;
27
+ }
28
+
29
+ function getFetch(f) {
30
+ if (f) {
31
+ return f;
32
+ }
33
+
34
+ var win = getWindow();
35
+
36
+ if (win.fetch) {
37
+ return typeof win.fetch.bind === 'function' ? win.fetch.bind(win) : win.fetch;
38
+ }
39
+
40
+ throw new Error('No fetch implementation found');
41
+ }
42
+
43
+ /** @internal */
44
+ function transformOperationResult(result) {
45
+ var context = result.context;
46
+
47
+ if ('error' in result.data) {
48
+ var error = TRPCClientError.from(result.data);
49
+ return {
50
+ ok: false,
51
+ error: error,
52
+ context: context
53
+ };
54
+ }
55
+
56
+ var data = result.data.result.data;
57
+ return {
58
+ ok: true,
59
+ data: data,
60
+ context: context
61
+ };
62
+ }
63
+
64
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
65
+
66
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
67
+
68
+ var ObservableAbortError = /*#__PURE__*/function (_Error) {
69
+ _inherits(ObservableAbortError, _Error);
70
+
71
+ var _super = /*#__PURE__*/_createSuper(ObservableAbortError);
72
+
73
+ function ObservableAbortError(message) {
74
+ var _this;
75
+
76
+ _classCallCheck(this, ObservableAbortError);
77
+
78
+ _this = _super.call(this, message);
79
+ _this.name = 'ObservableAbortError';
80
+ Object.setPrototypeOf(_assertThisInitialized(_this), ObservableAbortError.prototype);
81
+ return _this;
82
+ }
83
+
84
+ return ObservableAbortError;
85
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
86
+ /** @internal */
87
+
88
+ function observableToPromise(observable) {
89
+ var abort;
90
+ var promise = new Promise(function (resolve, reject) {
91
+ var isDone = false;
92
+
93
+ function onDone() {
94
+ if (isDone) {
95
+ return;
96
+ }
97
+
98
+ isDone = true;
99
+ reject(new ObservableAbortError('This operation was cancelled.'));
100
+ obs$.unsubscribe();
101
+ }
102
+
103
+ var obs$ = observable.subscribe({
104
+ next: function next(data) {
105
+ isDone = true;
106
+ resolve(data);
107
+ onDone();
108
+ },
109
+ error: function error(data) {
110
+ isDone = true;
111
+ reject(data);
112
+ onDone();
113
+ },
114
+ complete: function complete() {
115
+ isDone = true;
116
+ onDone();
117
+ }
118
+ });
119
+ abort = onDone;
120
+ });
121
+ return {
122
+ promise: promise,
123
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
124
+ abort: abort
125
+ };
126
+ }
127
+
128
+ var idCounter = 0;
129
+
130
+ function getRequestId() {
131
+ return ++idCounter;
132
+ }
133
+
134
+ var TRPCClient = /*#__PURE__*/function () {
135
+ function TRPCClient(opts) {
136
+ var _this = this;
137
+
138
+ _classCallCheck(this, TRPCClient);
139
+
140
+ this.links = void 0;
141
+ this.runtime = void 0;
142
+
143
+ var _fetch = getFetch(opts === null || opts === void 0 ? void 0 : opts.fetch);
144
+
145
+ var AC = getAbortController(opts === null || opts === void 0 ? void 0 : opts.AbortController);
146
+
147
+ function getHeadersFn() {
148
+ if (opts.headers) {
149
+ var headers = opts.headers;
150
+ return typeof headers === 'function' ? headers : function () {
151
+ return headers;
152
+ };
153
+ }
154
+
155
+ return function () {
156
+ return {};
157
+ };
158
+ }
159
+
160
+ this.runtime = {
161
+ AbortController: AC,
162
+ fetch: _fetch,
163
+ headers: getHeadersFn()
164
+ };
165
+
166
+ if ('links' in opts) {
167
+ this.links = opts.links.map(function (link) {
168
+ return link(_this.runtime);
169
+ });
170
+ } else {
171
+ this.links = [httpBatchLink({
172
+ url: opts.url
173
+ })(this.runtime)];
174
+ }
175
+ }
176
+
177
+ _createClass(TRPCClient, [{
178
+ key: "$request",
179
+ value: function $request(_ref) {
180
+ var type = _ref.type,
181
+ input = _ref.input,
182
+ path = _ref.path,
183
+ _ref$context = _ref.context,
184
+ context = _ref$context === void 0 ? {} : _ref$context;
185
+ var chain$ = createChain({
186
+ links: this.links,
187
+ op: {
188
+ id: getRequestId(),
189
+ type: type,
190
+ path: path,
191
+ input: input,
192
+ context: context
193
+ }
194
+ });
195
+ return chain$.pipe(share());
196
+ }
197
+ }, {
198
+ key: "requestAsPromise",
199
+ value: function requestAsPromise(opts) {
200
+ var req$ = this.$request(opts);
201
+
202
+ var _observableToPromise = observableToPromise(req$),
203
+ promise = _observableToPromise.promise,
204
+ abort = _observableToPromise.abort;
205
+
206
+ var cancellablePromise = new Promise(function (resolve, reject) {
207
+ promise.then(function (result) {
208
+ var transformed = transformOperationResult(result);
209
+
210
+ if (transformed.ok) {
211
+ resolve(transformed.data);
212
+ return;
213
+ }
214
+
215
+ reject(transformed.error);
216
+ }).catch(function (err) {
217
+ reject(TRPCClientError.from(err));
218
+ });
219
+ });
220
+ cancellablePromise.cancel = abort;
221
+ return cancellablePromise;
222
+ }
223
+ }, {
224
+ key: "query",
225
+ value: function query(path) {
226
+ var _ref2;
227
+
228
+ var context = (_ref2 = arguments.length <= 2 ? undefined : arguments[2]) === null || _ref2 === void 0 ? void 0 : _ref2.context;
229
+ return this.requestAsPromise({
230
+ type: 'query',
231
+ path: path,
232
+ input: arguments.length <= 1 ? undefined : arguments[1],
233
+ context: context
234
+ });
235
+ }
236
+ }, {
237
+ key: "mutation",
238
+ value: function mutation(path) {
239
+ var _ref3;
240
+
241
+ var context = (_ref3 = arguments.length <= 2 ? undefined : arguments[2]) === null || _ref3 === void 0 ? void 0 : _ref3.context;
242
+ return this.requestAsPromise({
243
+ type: 'mutation',
244
+ path: path,
245
+ input: arguments.length <= 1 ? undefined : arguments[1],
246
+ context: context
247
+ });
248
+ }
249
+ }, {
250
+ key: "subscription",
251
+ value: function subscription(path, input, opts) {
252
+ var observable$ = this.$request({
253
+ type: 'subscription',
254
+ path: path,
255
+ input: input,
256
+ context: opts.context
257
+ });
258
+ var observer = observable$.subscribe({
259
+ next: function next(result) {
260
+ var _opts$next;
261
+
262
+ if ('error' in result.data) {
263
+ var _opts$error;
264
+
265
+ var err = TRPCClientError.from(result.data, {
266
+ meta: result.context
267
+ });
268
+ (_opts$error = opts.error) === null || _opts$error === void 0 ? void 0 : _opts$error.call(opts, err);
269
+ return;
270
+ }
271
+
272
+ (_opts$next = opts.next) === null || _opts$next === void 0 ? void 0 : _opts$next.call(opts, result.data.result);
273
+ },
274
+ error: function error(err) {
275
+ var _opts$error2;
276
+
277
+ (_opts$error2 = opts.error) === null || _opts$error2 === void 0 ? void 0 : _opts$error2.call(opts, err);
278
+ },
279
+ complete: function complete() {
280
+ var _opts$complete;
281
+
282
+ (_opts$complete = opts.complete) === null || _opts$complete === void 0 ? void 0 : _opts$complete.call(opts);
283
+ }
284
+ });
285
+ return function () {
286
+ observer.unsubscribe();
287
+ };
288
+ }
289
+ }]);
290
+
291
+ return TRPCClient;
292
+ }();
293
+
294
+ /* eslint-disable @typescript-eslint/no-explicit-any */
295
+ function createTRPCClient(opts) {
296
+ return new TRPCClient(opts);
297
+ }
298
+
299
+ export { createTRPCClient, getFetch };
@@ -0,0 +1 @@
1
+