@trpc/client 10.0.0-alpha.21 → 10.0.0-alpha.22
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.
- package/dist/index.js +313 -270
- package/dist/index.mjs +301 -257
- package/dist/internals/TRPCClient.d.ts +12 -7
- package/dist/internals/TRPCClient.d.ts.map +1 -1
- package/dist/internals/dataLoader.d.ts +7 -6
- package/dist/internals/dataLoader.d.ts.map +1 -1
- package/dist/links/dedupeLink.d.ts.map +1 -1
- package/dist/links/httpBatchLink.d.ts +1 -1
- package/dist/links/httpBatchLink.d.ts.map +1 -1
- package/dist/links/index.d.ts +0 -2
- package/dist/links/index.d.ts.map +1 -1
- package/dist/links/internals/httpUtils.d.ts +15 -7
- package/dist/links/internals/httpUtils.d.ts.map +1 -1
- package/dist/links/internals/transformOperationResult.d.ts +17 -3
- package/dist/links/internals/transformOperationResult.d.ts.map +1 -1
- package/dist/links/loggerLink.d.ts.map +1 -1
- package/dist/links/retryLink.d.ts.map +1 -1
- package/dist/links/types.d.ts +10 -7
- package/dist/links/types.d.ts.map +1 -1
- package/dist/links/wsLink.d.ts +1 -1
- package/dist/links/wsLink.d.ts.map +1 -1
- package/package.json +5 -11
- package/src/internals/TRPCClient.ts +48 -24
- package/src/internals/dataLoader.ts +116 -54
- package/src/links/dedupeLink.test.ts +1 -1
- package/src/links/dedupeLink.ts +1 -2
- package/src/links/httpBatchLink.ts +54 -31
- package/src/links/httpLink.ts +3 -3
- package/src/links/index.ts +0 -2
- package/src/links/internals/createChain.test.ts +1 -1
- package/src/links/internals/createChain.ts +1 -1
- package/src/links/internals/httpUtils.ts +52 -31
- package/src/links/internals/transformOperationResult.ts +40 -12
- package/src/links/loggerLink.ts +1 -1
- package/src/links/retryLink.ts +1 -2
- package/src/links/splitLink.test.ts +1 -1
- package/src/links/splitLink.ts +4 -4
- package/src/links/types.ts +12 -7
- package/src/links/wsLink.ts +11 -10
- package/dist/links/transformerLink.d.ts +0 -4
- package/dist/links/transformerLink.d.ts.map +0 -1
- package/dist/observable/index.d.ts +0 -4
- package/dist/observable/index.d.ts.map +0 -1
- package/dist/observable/index.js +0 -38
- package/dist/observable/index.mjs +0 -31
- package/dist/observable/index.ts.js +0 -1
- package/dist/observable/internals/identity.d.ts +0 -2
- package/dist/observable/internals/identity.d.ts.map +0 -1
- package/dist/observable/internals/observableToPromise.d.ts +0 -10
- package/dist/observable/internals/observableToPromise.d.ts.map +0 -1
- package/dist/observable/internals/pipe.d.ts +0 -4
- package/dist/observable/internals/pipe.d.ts.map +0 -1
- package/dist/observable/observable.d.ts +0 -4
- package/dist/observable/observable.d.ts.map +0 -1
- package/dist/observable/operators/index.d.ts +0 -4
- package/dist/observable/operators/index.d.ts.map +0 -1
- package/dist/observable/operators/map.d.ts +0 -3
- package/dist/observable/operators/map.d.ts.map +0 -1
- package/dist/observable/operators/share.d.ts +0 -6
- package/dist/observable/operators/share.d.ts.map +0 -1
- package/dist/observable/operators/tap.d.ts +0 -3
- package/dist/observable/operators/tap.d.ts.map +0 -1
- package/dist/observable/types.d.ts +0 -29
- package/dist/observable/types.d.ts.map +0 -1
- package/dist/tap-0dcdee86.js +0 -243
- package/dist/tap-136a9a90.mjs +0 -239
- package/observable/dist/trpc-client-rx.cjs.d.ts +0 -1
- package/observable/dist/trpc-client-rx.cjs.dev.js +0 -9
- package/observable/dist/trpc-client-rx.cjs.js +0 -7
- package/observable/dist/trpc-client-rx.cjs.prod.js +0 -9
- package/observable/dist/trpc-client-rx.esm.js +0 -1
- package/observable/index.d.ts +0 -1
- package/observable/index.js +0 -1
- package/src/links/transformerLink.ts +0 -74
- package/src/observable/index.ts +0 -3
- package/src/observable/internals/identity.ts +0 -3
- package/src/observable/internals/observableToPromise.ts +0 -49
- package/src/observable/internals/pipe.ts +0 -22
- package/src/observable/observable.test.ts +0 -101
- package/src/observable/observable.ts +0 -70
- package/src/observable/operators/index.ts +0 -3
- package/src/observable/operators/map.test.ts +0 -92
- package/src/observable/operators/map.ts +0 -25
- package/src/observable/operators/share.test.ts +0 -60
- package/src/observable/operators/share.ts +0 -67
- package/src/observable/operators/tap.ts +0 -26
- package/src/observable/types.ts +0 -69
package/dist/index.mjs
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
2
2
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
3
|
+
import { observable, share, tap, observableToPromise } from '@trpc/server/observable';
|
|
3
4
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
5
|
import _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';
|
|
5
6
|
import _inherits from '@babel/runtime/helpers/inherits';
|
|
6
7
|
import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
|
|
7
8
|
import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
|
|
8
9
|
import _wrapNativeSuper from '@babel/runtime/helpers/wrapNativeSuper';
|
|
9
|
-
import { o as observable, s as share, t as tap } from './tap-136a9a90.mjs';
|
|
10
10
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
11
11
|
|
|
12
12
|
function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
13
|
|
|
14
14
|
function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
15
|
|
|
16
|
-
function _createSuper$
|
|
16
|
+
function _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); 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); }; }
|
|
17
17
|
|
|
18
|
-
function _isNativeReflectConstruct$
|
|
18
|
+
function _isNativeReflectConstruct$1() { 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; } }
|
|
19
19
|
|
|
20
20
|
var TRPCClientError = /*#__PURE__*/function (_Error) {
|
|
21
21
|
_inherits(TRPCClientError, _Error);
|
|
22
22
|
|
|
23
|
-
var _super = /*#__PURE__*/_createSuper$
|
|
23
|
+
var _super = /*#__PURE__*/_createSuper$1(TRPCClientError);
|
|
24
24
|
|
|
25
25
|
function TRPCClientError(message, opts) {
|
|
26
26
|
var _opts$result, _opts$result2;
|
|
@@ -161,82 +161,174 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
161
161
|
|
|
162
162
|
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; }
|
|
163
163
|
|
|
164
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* A function that should never be called unless we messed something up.
|
|
168
|
+
*/
|
|
169
|
+
var throwFatalError = function throwFatalError() {
|
|
170
|
+
throw new Error('Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new');
|
|
171
|
+
};
|
|
164
172
|
/**
|
|
165
173
|
* Dataloader that's very inspired by https://github.com/graphql/dataloader
|
|
166
174
|
* Less configuration, no caching, and allows you to cancel requests
|
|
167
175
|
* When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
|
|
168
176
|
*/
|
|
169
|
-
|
|
170
|
-
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
function dataLoader(batchLoader) {
|
|
180
|
+
var pendingItems = null;
|
|
171
181
|
var dispatchTimer = null;
|
|
172
182
|
|
|
173
|
-
var
|
|
183
|
+
var destroyTimerAndPendingItems = function destroyTimerAndPendingItems() {
|
|
174
184
|
clearTimeout(dispatchTimer);
|
|
175
185
|
dispatchTimer = null;
|
|
176
|
-
|
|
186
|
+
pendingItems = null;
|
|
177
187
|
};
|
|
188
|
+
/**
|
|
189
|
+
* Iterate through the items and split them into groups based on the `batchLoader`'s validate function
|
|
190
|
+
*/
|
|
178
191
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
var
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
batchCopy.cancel = cancel;
|
|
191
|
-
promise.then(function (result) {
|
|
192
|
-
for (var i = 0; i < result.length; i++) {
|
|
193
|
-
var _value = result[i]; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
194
|
-
|
|
195
|
-
batchCopy.items[i].resolve(_value);
|
|
192
|
+
|
|
193
|
+
function groupItems(items) {
|
|
194
|
+
var groupedItems = [[]];
|
|
195
|
+
var index = 0;
|
|
196
|
+
|
|
197
|
+
while (true) {
|
|
198
|
+
var item = items[index];
|
|
199
|
+
|
|
200
|
+
if (!item) {
|
|
201
|
+
// we're done
|
|
202
|
+
break;
|
|
196
203
|
}
|
|
197
|
-
|
|
198
|
-
var
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
}
|
|
206
|
-
} catch (err) {
|
|
207
|
-
_iterator.e(err);
|
|
208
|
-
} finally {
|
|
209
|
-
_iterator.f();
|
|
204
|
+
|
|
205
|
+
var lastGroup = groupedItems[groupedItems.length - 1];
|
|
206
|
+
|
|
207
|
+
if (item.aborted) {
|
|
208
|
+
// Item was aborted before it was dispatched
|
|
209
|
+
item.reject(new Error('Aborted'));
|
|
210
|
+
index++;
|
|
211
|
+
continue;
|
|
210
212
|
}
|
|
211
|
-
|
|
213
|
+
|
|
214
|
+
var isValid = batchLoader.validate(lastGroup.concat(item).map(function (it) {
|
|
215
|
+
return it.key;
|
|
216
|
+
}));
|
|
217
|
+
|
|
218
|
+
if (isValid) {
|
|
219
|
+
lastGroup.push(item);
|
|
220
|
+
index++;
|
|
221
|
+
continue;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
if (lastGroup.length === 0) {
|
|
225
|
+
item.reject(new Error('Input is too big for a single dispatch'));
|
|
226
|
+
index++;
|
|
227
|
+
continue;
|
|
228
|
+
} // Create new group, next iteration will try to add the item to that
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
groupedItems.push([]);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return groupedItems;
|
|
212
235
|
}
|
|
213
236
|
|
|
214
|
-
function
|
|
215
|
-
var
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
237
|
+
function dispatch() {
|
|
238
|
+
var groupedItems = groupItems(pendingItems);
|
|
239
|
+
destroyTimerAndPendingItems(); // Create batches for each group of items
|
|
240
|
+
|
|
241
|
+
var _iterator = _createForOfIteratorHelper(groupedItems),
|
|
242
|
+
_step;
|
|
243
|
+
|
|
244
|
+
try {
|
|
245
|
+
var _loop = function _loop() {
|
|
246
|
+
var items = _step.value;
|
|
247
|
+
|
|
248
|
+
if (!items.length) {
|
|
249
|
+
return "continue";
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
var batch = {
|
|
253
|
+
items: items,
|
|
254
|
+
cancel: throwFatalError
|
|
255
|
+
};
|
|
219
256
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
257
|
+
var _iterator2 = _createForOfIteratorHelper(items),
|
|
258
|
+
_step2;
|
|
259
|
+
|
|
260
|
+
try {
|
|
261
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
262
|
+
var item = _step2.value;
|
|
263
|
+
item.batch = batch;
|
|
264
|
+
}
|
|
265
|
+
} catch (err) {
|
|
266
|
+
_iterator2.e(err);
|
|
267
|
+
} finally {
|
|
268
|
+
_iterator2.f();
|
|
225
269
|
}
|
|
270
|
+
|
|
271
|
+
var _batchLoader$fetch = batchLoader.fetch(batch.items.map(function (_item) {
|
|
272
|
+
return _item.key;
|
|
273
|
+
})),
|
|
274
|
+
promise = _batchLoader$fetch.promise,
|
|
275
|
+
cancel = _batchLoader$fetch.cancel;
|
|
276
|
+
|
|
277
|
+
batch.cancel = cancel;
|
|
278
|
+
promise.then(function (result) {
|
|
279
|
+
for (var i = 0; i < result.length; i++) {
|
|
280
|
+
var _value = result[i];
|
|
281
|
+
var item = batch.items[i];
|
|
282
|
+
item.resolve(_value);
|
|
283
|
+
item.batch = null;
|
|
284
|
+
}
|
|
285
|
+
}).catch(function (cause) {
|
|
286
|
+
var _iterator3 = _createForOfIteratorHelper(batch.items),
|
|
287
|
+
_step3;
|
|
288
|
+
|
|
289
|
+
try {
|
|
290
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
291
|
+
var item = _step3.value;
|
|
292
|
+
item.reject(cause);
|
|
293
|
+
item.batch = null;
|
|
294
|
+
}
|
|
295
|
+
} catch (err) {
|
|
296
|
+
_iterator3.e(err);
|
|
297
|
+
} finally {
|
|
298
|
+
_iterator3.f();
|
|
299
|
+
}
|
|
300
|
+
});
|
|
226
301
|
};
|
|
302
|
+
|
|
303
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
304
|
+
var _ret = _loop();
|
|
305
|
+
|
|
306
|
+
if (_ret === "continue") continue;
|
|
307
|
+
}
|
|
308
|
+
} catch (err) {
|
|
309
|
+
_iterator.e(err);
|
|
310
|
+
} finally {
|
|
311
|
+
_iterator.f();
|
|
227
312
|
}
|
|
313
|
+
}
|
|
228
314
|
|
|
229
|
-
|
|
315
|
+
function load(key) {
|
|
316
|
+
var item = {
|
|
317
|
+
aborted: false,
|
|
318
|
+
key: key,
|
|
319
|
+
batch: null,
|
|
320
|
+
resolve: throwFatalError,
|
|
321
|
+
reject: throwFatalError
|
|
322
|
+
};
|
|
230
323
|
var promise = new Promise(function (resolve, reject) {
|
|
231
|
-
var item = batchItem;
|
|
232
324
|
item.reject = reject;
|
|
233
325
|
item.resolve = resolve;
|
|
234
|
-
thisBatch.items.push(item);
|
|
235
326
|
|
|
236
|
-
if (
|
|
237
|
-
|
|
238
|
-
return;
|
|
327
|
+
if (!pendingItems) {
|
|
328
|
+
pendingItems = [];
|
|
239
329
|
}
|
|
330
|
+
|
|
331
|
+
pendingItems.push(item);
|
|
240
332
|
});
|
|
241
333
|
|
|
242
334
|
if (!dispatchTimer) {
|
|
@@ -244,16 +336,17 @@ function dataLoader(fetchMany, opts) {
|
|
|
244
336
|
}
|
|
245
337
|
|
|
246
338
|
var cancel = function cancel() {
|
|
247
|
-
|
|
339
|
+
var _item$batch;
|
|
248
340
|
|
|
249
|
-
|
|
250
|
-
|
|
341
|
+
item.aborted = true;
|
|
342
|
+
|
|
343
|
+
if ((_item$batch = item.batch) !== null && _item$batch !== void 0 && _item$batch.items.every(function (item) {
|
|
344
|
+
return item.aborted;
|
|
251
345
|
})) {
|
|
252
|
-
//
|
|
253
|
-
|
|
346
|
+
// All items in the batch have been cancelled
|
|
347
|
+
item.batch.cancel();
|
|
348
|
+
item.batch = null;
|
|
254
349
|
}
|
|
255
|
-
|
|
256
|
-
thisBatch.cancel();
|
|
257
350
|
};
|
|
258
351
|
|
|
259
352
|
return {
|
|
@@ -288,48 +381,56 @@ var METHOD = {
|
|
|
288
381
|
mutation: 'POST',
|
|
289
382
|
subscription: 'PATCH'
|
|
290
383
|
};
|
|
291
|
-
function httpRequest(props) {
|
|
292
|
-
var type = props.type,
|
|
293
|
-
rt = props.runtime,
|
|
294
|
-
path = props.path;
|
|
295
|
-
var ac = rt.AbortController ? new rt.AbortController() : null;
|
|
296
|
-
var input = 'input' in props ? props.input : arrayToDict(props.inputs);
|
|
297
|
-
|
|
298
|
-
function getUrl() {
|
|
299
|
-
var url = props.url + '/' + path;
|
|
300
|
-
var queryParts = [];
|
|
301
|
-
|
|
302
|
-
if ('inputs' in props) {
|
|
303
|
-
queryParts.push('batch=1');
|
|
304
|
-
}
|
|
305
384
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
385
|
+
function getInput(opts) {
|
|
386
|
+
return 'input' in opts ? opts.runtime.transformer.serialize(opts.input) : arrayToDict(opts.inputs.map(function (_input) {
|
|
387
|
+
return opts.runtime.transformer.serialize(_input);
|
|
388
|
+
}));
|
|
389
|
+
}
|
|
309
390
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
391
|
+
function getUrl(opts) {
|
|
392
|
+
var url = opts.url + '/' + opts.path;
|
|
393
|
+
var queryParts = [];
|
|
313
394
|
|
|
314
|
-
|
|
395
|
+
if ('inputs' in opts) {
|
|
396
|
+
queryParts.push('batch=1');
|
|
315
397
|
}
|
|
316
398
|
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
399
|
+
if (opts.type === 'query') {
|
|
400
|
+
var input = getInput(opts);
|
|
401
|
+
|
|
402
|
+
if (input !== undefined) {
|
|
403
|
+
queryParts.push("input=".concat(encodeURIComponent(JSON.stringify(input))));
|
|
320
404
|
}
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
if (queryParts.length) {
|
|
408
|
+
url += '?' + queryParts.join('&');
|
|
409
|
+
}
|
|
321
410
|
|
|
322
|
-
|
|
411
|
+
return url;
|
|
412
|
+
}
|
|
413
|
+
function getBody(opts) {
|
|
414
|
+
if (opts.type === 'query') {
|
|
415
|
+
return undefined;
|
|
323
416
|
}
|
|
324
417
|
|
|
418
|
+
var input = getInput(opts);
|
|
419
|
+
return input !== undefined ? JSON.stringify(input) : undefined;
|
|
420
|
+
}
|
|
421
|
+
function httpRequest(opts) {
|
|
422
|
+
var type = opts.type,
|
|
423
|
+
runtime = opts.runtime;
|
|
424
|
+
var ac = runtime.AbortController ? new runtime.AbortController() : null;
|
|
325
425
|
var promise = new Promise(function (resolve, reject) {
|
|
326
|
-
var url = getUrl();
|
|
426
|
+
var url = getUrl(opts);
|
|
427
|
+
var body = getBody(opts);
|
|
327
428
|
var meta = {};
|
|
328
|
-
Promise.resolve(
|
|
329
|
-
return
|
|
429
|
+
Promise.resolve(runtime.headers()).then(function (headers) {
|
|
430
|
+
return runtime.fetch(url, {
|
|
330
431
|
method: METHOD[type],
|
|
331
432
|
signal: ac === null || ac === void 0 ? void 0 : ac.signal,
|
|
332
|
-
body:
|
|
433
|
+
body: body,
|
|
333
434
|
headers: _objectSpread$2({
|
|
334
435
|
'content-type': 'application/json'
|
|
335
436
|
}, headers)
|
|
@@ -356,31 +457,54 @@ function httpRequest(props) {
|
|
|
356
457
|
}
|
|
357
458
|
|
|
358
459
|
function httpBatchLink(opts) {
|
|
359
|
-
|
|
360
|
-
|
|
460
|
+
// initialized config
|
|
361
461
|
return function (runtime) {
|
|
362
|
-
var
|
|
363
|
-
|
|
364
|
-
|
|
462
|
+
var maxURLLength = opts.maxURLLength || Infinity;
|
|
463
|
+
|
|
464
|
+
var batchLoader = function batchLoader(type) {
|
|
465
|
+
var validate = function validate(batchOps) {
|
|
466
|
+
if (maxURLLength === Infinity) {
|
|
467
|
+
// escape hatch for quick calcs
|
|
468
|
+
return true;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
var path = batchOps.map(function (op) {
|
|
472
|
+
return op.path;
|
|
473
|
+
}).join(',');
|
|
474
|
+
var inputs = batchOps.map(function (op) {
|
|
475
|
+
return op.input;
|
|
476
|
+
});
|
|
477
|
+
var url = getUrl({
|
|
478
|
+
url: opts.url,
|
|
479
|
+
runtime: runtime,
|
|
480
|
+
type: type,
|
|
481
|
+
path: path,
|
|
482
|
+
inputs: inputs
|
|
483
|
+
});
|
|
484
|
+
return url.length <= maxURLLength;
|
|
485
|
+
};
|
|
486
|
+
|
|
487
|
+
var fetch = function fetch(batchOps) {
|
|
488
|
+
var path = batchOps.map(function (op) {
|
|
365
489
|
return op.path;
|
|
366
490
|
}).join(',');
|
|
367
|
-
var inputs =
|
|
491
|
+
var inputs = batchOps.map(function (op) {
|
|
368
492
|
return op.input;
|
|
369
493
|
});
|
|
370
494
|
|
|
371
495
|
var _httpRequest = httpRequest({
|
|
372
|
-
url: url,
|
|
373
|
-
inputs: inputs,
|
|
374
|
-
path: path,
|
|
496
|
+
url: opts.url,
|
|
375
497
|
runtime: runtime,
|
|
376
|
-
type: type
|
|
498
|
+
type: type,
|
|
499
|
+
path: path,
|
|
500
|
+
inputs: inputs
|
|
377
501
|
}),
|
|
378
502
|
promise = _httpRequest.promise,
|
|
379
503
|
cancel = _httpRequest.cancel;
|
|
380
504
|
|
|
381
505
|
return {
|
|
382
506
|
promise: promise.then(function (res) {
|
|
383
|
-
var resJSON = Array.isArray(res.json) ? res.json :
|
|
507
|
+
var resJSON = Array.isArray(res.json) ? res.json : batchOps.map(function () {
|
|
384
508
|
return res.json;
|
|
385
509
|
});
|
|
386
510
|
var result = resJSON.map(function (item) {
|
|
@@ -394,11 +518,16 @@ function httpBatchLink(opts) {
|
|
|
394
518
|
cancel: cancel
|
|
395
519
|
};
|
|
396
520
|
};
|
|
521
|
+
|
|
522
|
+
return {
|
|
523
|
+
validate: validate,
|
|
524
|
+
fetch: fetch
|
|
525
|
+
};
|
|
397
526
|
};
|
|
398
527
|
|
|
399
|
-
var query = dataLoader(
|
|
400
|
-
var mutation = dataLoader(
|
|
401
|
-
var subscription = dataLoader(
|
|
528
|
+
var query = dataLoader(batchLoader('query'));
|
|
529
|
+
var mutation = dataLoader(batchLoader('mutation'));
|
|
530
|
+
var subscription = dataLoader(batchLoader('subscription'));
|
|
402
531
|
var loaders = {
|
|
403
532
|
query: query,
|
|
404
533
|
subscription: subscription,
|
|
@@ -441,11 +570,11 @@ function httpLink(opts) {
|
|
|
441
570
|
type = op.type;
|
|
442
571
|
|
|
443
572
|
var _httpRequest = httpRequest({
|
|
573
|
+
url: url,
|
|
444
574
|
runtime: runtime,
|
|
445
|
-
path: path,
|
|
446
|
-
input: input,
|
|
447
575
|
type: type,
|
|
448
|
-
|
|
576
|
+
path: path,
|
|
577
|
+
input: input
|
|
449
578
|
}),
|
|
450
579
|
promise = _httpRequest.promise,
|
|
451
580
|
cancel = _httpRequest.cancel;
|
|
@@ -647,12 +776,12 @@ function asArray(value) {
|
|
|
647
776
|
}
|
|
648
777
|
|
|
649
778
|
function splitLink(opts) {
|
|
650
|
-
return function (
|
|
779
|
+
return function (runtime) {
|
|
651
780
|
var yes = asArray(opts.true).map(function (link) {
|
|
652
|
-
return link(
|
|
781
|
+
return link(runtime);
|
|
653
782
|
});
|
|
654
783
|
var no = asArray(opts.false).map(function (link) {
|
|
655
|
-
return link(
|
|
784
|
+
return link(runtime);
|
|
656
785
|
});
|
|
657
786
|
return function (props) {
|
|
658
787
|
return observable(function (observer) {
|
|
@@ -666,81 +795,14 @@ function splitLink(opts) {
|
|
|
666
795
|
};
|
|
667
796
|
}
|
|
668
797
|
|
|
669
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
670
|
-
|
|
671
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
672
|
-
|
|
673
|
-
/**
|
|
674
|
-
* @internal
|
|
675
|
-
*/
|
|
676
|
-
function transformOperationResult$1(result, transformer) {
|
|
677
|
-
if ('error' in result.data) {
|
|
678
|
-
return _objectSpread(_objectSpread({}, result), {}, {
|
|
679
|
-
data: _objectSpread(_objectSpread({}, result.data), {}, {
|
|
680
|
-
error: transformer.deserialize(result.data.error)
|
|
681
|
-
})
|
|
682
|
-
});
|
|
683
|
-
}
|
|
684
|
-
|
|
685
|
-
if (result.data.result.type !== 'data') {
|
|
686
|
-
return result;
|
|
687
|
-
}
|
|
688
|
-
|
|
689
|
-
return _objectSpread(_objectSpread({}, result), {}, {
|
|
690
|
-
data: _objectSpread(_objectSpread({}, result.data), {}, {
|
|
691
|
-
result: _objectSpread(_objectSpread({}, result.data.result), {}, {
|
|
692
|
-
data: transformer.deserialize(result.data.result.data)
|
|
693
|
-
})
|
|
694
|
-
})
|
|
695
|
-
});
|
|
696
|
-
}
|
|
697
|
-
|
|
698
|
-
function transformerLink(transformer) {
|
|
699
|
-
var _transformer = transformer ? 'input' in transformer ? {
|
|
700
|
-
serialize: transformer.input.serialize,
|
|
701
|
-
deserialize: transformer.output.deserialize
|
|
702
|
-
} : transformer : {
|
|
703
|
-
serialize: function serialize(data) {
|
|
704
|
-
return data;
|
|
705
|
-
},
|
|
706
|
-
deserialize: function deserialize(data) {
|
|
707
|
-
return data;
|
|
708
|
-
}
|
|
709
|
-
};
|
|
710
|
-
|
|
711
|
-
return function () {
|
|
712
|
-
return function (props) {
|
|
713
|
-
var input = _transformer.serialize(props.op.input);
|
|
714
|
-
|
|
715
|
-
return observable(function (observer) {
|
|
716
|
-
var subscription = props.next(_objectSpread(_objectSpread({}, props.op), {}, {
|
|
717
|
-
input: input
|
|
718
|
-
})).subscribe({
|
|
719
|
-
next: function next(value) {
|
|
720
|
-
var transformed = transformOperationResult$1(value, _transformer);
|
|
721
|
-
observer.next(transformed);
|
|
722
|
-
},
|
|
723
|
-
error: function error(err) {
|
|
724
|
-
observer.error(err);
|
|
725
|
-
},
|
|
726
|
-
complete: function complete() {
|
|
727
|
-
observer.complete();
|
|
728
|
-
}
|
|
729
|
-
});
|
|
730
|
-
return subscription;
|
|
731
|
-
});
|
|
732
|
-
};
|
|
733
|
-
};
|
|
734
|
-
}
|
|
735
|
-
|
|
736
798
|
/* istanbul ignore next */
|
|
737
799
|
var retryDelay = function retryDelay(attemptIndex) {
|
|
738
800
|
return attemptIndex === 0 ? 0 : Math.min(1000 * Math.pow(2, attemptIndex), 30000);
|
|
739
801
|
};
|
|
740
802
|
|
|
741
|
-
function _createSuper
|
|
803
|
+
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); }; }
|
|
742
804
|
|
|
743
|
-
function _isNativeReflectConstruct
|
|
805
|
+
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; } }
|
|
744
806
|
function createWSClient(opts) {
|
|
745
807
|
var url = opts.url,
|
|
746
808
|
_opts$WebSocket = opts.WebSocket,
|
|
@@ -952,7 +1014,6 @@ function createWSClient(opts) {
|
|
|
952
1014
|
id = op.id;
|
|
953
1015
|
var envelope = {
|
|
954
1016
|
id: id,
|
|
955
|
-
jsonrpc: '2.0',
|
|
956
1017
|
method: type,
|
|
957
1018
|
params: {
|
|
958
1019
|
input: input,
|
|
@@ -981,8 +1042,7 @@ function createWSClient(opts) {
|
|
|
981
1042
|
if (op.type === 'subscription') {
|
|
982
1043
|
outgoing.push({
|
|
983
1044
|
id: id,
|
|
984
|
-
method: 'subscription.stop'
|
|
985
|
-
params: undefined
|
|
1045
|
+
method: 'subscription.stop'
|
|
986
1046
|
});
|
|
987
1047
|
dispatch();
|
|
988
1048
|
}
|
|
@@ -1004,7 +1064,7 @@ function createWSClient(opts) {
|
|
|
1004
1064
|
var TRPCWebSocketClosedError = /*#__PURE__*/function (_Error) {
|
|
1005
1065
|
_inherits(TRPCWebSocketClosedError, _Error);
|
|
1006
1066
|
|
|
1007
|
-
var _super = /*#__PURE__*/_createSuper
|
|
1067
|
+
var _super = /*#__PURE__*/_createSuper(TRPCWebSocketClosedError);
|
|
1008
1068
|
|
|
1009
1069
|
function TRPCWebSocketClosedError(message) {
|
|
1010
1070
|
var _this;
|
|
@@ -1023,7 +1083,7 @@ var TRPCWebSocketClosedError = /*#__PURE__*/function (_Error) {
|
|
|
1023
1083
|
var TRPCSubscriptionEndedError = /*#__PURE__*/function (_Error2) {
|
|
1024
1084
|
_inherits(TRPCSubscriptionEndedError, _Error2);
|
|
1025
1085
|
|
|
1026
|
-
var _super2 = /*#__PURE__*/_createSuper
|
|
1086
|
+
var _super2 = /*#__PURE__*/_createSuper(TRPCSubscriptionEndedError);
|
|
1027
1087
|
|
|
1028
1088
|
function TRPCSubscriptionEndedError(message) {
|
|
1029
1089
|
var _this2;
|
|
@@ -1040,16 +1100,16 @@ var TRPCSubscriptionEndedError = /*#__PURE__*/function (_Error2) {
|
|
|
1040
1100
|
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
1041
1101
|
|
|
1042
1102
|
function wsLink(opts) {
|
|
1043
|
-
return function () {
|
|
1103
|
+
return function (runtime) {
|
|
1044
1104
|
var client = opts.client;
|
|
1045
1105
|
return function (_ref2) {
|
|
1046
1106
|
var op = _ref2.op;
|
|
1047
1107
|
return observable(function (observer) {
|
|
1048
1108
|
var type = op.type,
|
|
1049
|
-
input = op.input,
|
|
1050
1109
|
path = op.path,
|
|
1051
1110
|
id = op.id,
|
|
1052
1111
|
context = op.context;
|
|
1112
|
+
var input = runtime.transformer.serialize(op.input);
|
|
1053
1113
|
var isDone = false;
|
|
1054
1114
|
var unsub = client.request({
|
|
1055
1115
|
type: type,
|
|
@@ -1091,12 +1151,18 @@ function wsLink(opts) {
|
|
|
1091
1151
|
};
|
|
1092
1152
|
}
|
|
1093
1153
|
|
|
1154
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
1155
|
+
|
|
1156
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
1157
|
+
|
|
1094
1158
|
/** @internal */
|
|
1095
|
-
function transformOperationResult(result) {
|
|
1159
|
+
function transformOperationResult(result, runtime) {
|
|
1096
1160
|
var context = result.context;
|
|
1097
1161
|
|
|
1098
1162
|
if ('error' in result.data) {
|
|
1099
|
-
var error = TRPCClientError.from(result.data)
|
|
1163
|
+
var error = TRPCClientError.from(_objectSpread(_objectSpread({}, result.data), {}, {
|
|
1164
|
+
error: runtime.transformer.deserialize(result.data.error)
|
|
1165
|
+
}));
|
|
1100
1166
|
return {
|
|
1101
1167
|
ok: false,
|
|
1102
1168
|
error: error,
|
|
@@ -1104,75 +1170,39 @@ function transformOperationResult(result) {
|
|
|
1104
1170
|
};
|
|
1105
1171
|
}
|
|
1106
1172
|
|
|
1107
|
-
var data = result.data.result.data;
|
|
1173
|
+
var data = runtime.transformer.deserialize(result.data.result.data);
|
|
1108
1174
|
return {
|
|
1109
1175
|
ok: true,
|
|
1110
1176
|
data: data,
|
|
1111
1177
|
context: context
|
|
1112
1178
|
};
|
|
1113
1179
|
}
|
|
1114
|
-
|
|
1115
|
-
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); }; }
|
|
1116
|
-
|
|
1117
|
-
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; } }
|
|
1118
|
-
|
|
1119
|
-
var ObservableAbortError = /*#__PURE__*/function (_Error) {
|
|
1120
|
-
_inherits(ObservableAbortError, _Error);
|
|
1121
|
-
|
|
1122
|
-
var _super = /*#__PURE__*/_createSuper(ObservableAbortError);
|
|
1123
|
-
|
|
1124
|
-
function ObservableAbortError(message) {
|
|
1125
|
-
var _this;
|
|
1126
|
-
|
|
1127
|
-
_classCallCheck(this, ObservableAbortError);
|
|
1128
|
-
|
|
1129
|
-
_this = _super.call(this, message);
|
|
1130
|
-
_this.name = 'ObservableAbortError';
|
|
1131
|
-
Object.setPrototypeOf(_assertThisInitialized(_this), ObservableAbortError.prototype);
|
|
1132
|
-
return _this;
|
|
1133
|
-
}
|
|
1134
|
-
|
|
1135
|
-
return _createClass(ObservableAbortError);
|
|
1136
|
-
}( /*#__PURE__*/_wrapNativeSuper(Error));
|
|
1137
1180
|
/** @internal */
|
|
1138
1181
|
|
|
1139
|
-
function
|
|
1140
|
-
var
|
|
1141
|
-
var promise = new Promise(function (resolve, reject) {
|
|
1142
|
-
var isDone = false;
|
|
1143
|
-
|
|
1144
|
-
function onDone() {
|
|
1145
|
-
if (isDone) {
|
|
1146
|
-
return;
|
|
1147
|
-
}
|
|
1148
|
-
|
|
1149
|
-
isDone = true;
|
|
1150
|
-
reject(new ObservableAbortError('This operation was cancelled.'));
|
|
1151
|
-
obs$.unsubscribe();
|
|
1152
|
-
}
|
|
1182
|
+
function transformSubscriptionOperationResult(result, runtime) {
|
|
1183
|
+
var context = result.context;
|
|
1153
1184
|
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
},
|
|
1160
|
-
error: function error(data) {
|
|
1161
|
-
isDone = true;
|
|
1162
|
-
reject(data);
|
|
1163
|
-
onDone();
|
|
1164
|
-
},
|
|
1165
|
-
complete: function complete() {
|
|
1166
|
-
isDone = true;
|
|
1167
|
-
onDone();
|
|
1168
|
-
}
|
|
1185
|
+
if ('error' in result.data) {
|
|
1186
|
+
var error = TRPCClientError.from(_objectSpread(_objectSpread({}, result.data), {}, {
|
|
1187
|
+
error: runtime.transformer.deserialize(result.data.error)
|
|
1188
|
+
}), {
|
|
1189
|
+
meta: context
|
|
1169
1190
|
});
|
|
1170
|
-
|
|
1191
|
+
return {
|
|
1192
|
+
ok: false,
|
|
1193
|
+
error: error,
|
|
1194
|
+
context: context
|
|
1195
|
+
};
|
|
1196
|
+
}
|
|
1197
|
+
|
|
1198
|
+
var data = _objectSpread(_objectSpread({}, result.data.result), result.data.result.type === 'data' && {
|
|
1199
|
+
data: runtime.transformer.deserialize(result.data.result.data)
|
|
1171
1200
|
});
|
|
1201
|
+
|
|
1172
1202
|
return {
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1203
|
+
ok: true,
|
|
1204
|
+
data: data,
|
|
1205
|
+
context: context
|
|
1176
1206
|
};
|
|
1177
1207
|
}
|
|
1178
1208
|
|
|
@@ -1208,10 +1238,22 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
1208
1238
|
};
|
|
1209
1239
|
}
|
|
1210
1240
|
|
|
1241
|
+
var transformer = opts.transformer ? 'input' in opts.transformer ? {
|
|
1242
|
+
serialize: opts.transformer.input.serialize,
|
|
1243
|
+
deserialize: opts.transformer.output.deserialize
|
|
1244
|
+
} : opts.transformer : {
|
|
1245
|
+
serialize: function serialize(data) {
|
|
1246
|
+
return data;
|
|
1247
|
+
},
|
|
1248
|
+
deserialize: function deserialize(data) {
|
|
1249
|
+
return data;
|
|
1250
|
+
}
|
|
1251
|
+
};
|
|
1211
1252
|
this.runtime = {
|
|
1212
1253
|
AbortController: AC,
|
|
1213
1254
|
fetch: _fetch,
|
|
1214
|
-
headers: getHeadersFn()
|
|
1255
|
+
headers: getHeadersFn(),
|
|
1256
|
+
transformer: transformer
|
|
1215
1257
|
};
|
|
1216
1258
|
|
|
1217
1259
|
if ('links' in opts) {
|
|
@@ -1248,6 +1290,8 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
1248
1290
|
}, {
|
|
1249
1291
|
key: "requestAsPromise",
|
|
1250
1292
|
value: function requestAsPromise(opts) {
|
|
1293
|
+
var _this2 = this;
|
|
1294
|
+
|
|
1251
1295
|
var req$ = this.$request(opts);
|
|
1252
1296
|
|
|
1253
1297
|
var _observableToPromise = observableToPromise(req$),
|
|
@@ -1256,7 +1300,7 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
1256
1300
|
|
|
1257
1301
|
var cancellablePromise = new Promise(function (resolve, reject) {
|
|
1258
1302
|
promise.then(function (result) {
|
|
1259
|
-
var transformed = transformOperationResult(result);
|
|
1303
|
+
var transformed = transformOperationResult(result, _this2.runtime);
|
|
1260
1304
|
|
|
1261
1305
|
if (transformed.ok) {
|
|
1262
1306
|
resolve(transformed.data);
|
|
@@ -1306,21 +1350,21 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
1306
1350
|
input: input,
|
|
1307
1351
|
context: opts.context
|
|
1308
1352
|
});
|
|
1353
|
+
var runtime = this.runtime;
|
|
1309
1354
|
return observable$.subscribe({
|
|
1310
1355
|
next: function next(result) {
|
|
1311
|
-
var _opts$
|
|
1356
|
+
var _opts$error;
|
|
1312
1357
|
|
|
1313
|
-
|
|
1314
|
-
var _opts$error;
|
|
1358
|
+
var transformed = transformSubscriptionOperationResult(result, runtime);
|
|
1315
1359
|
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
(_opts$
|
|
1360
|
+
if (transformed.ok) {
|
|
1361
|
+
var _opts$next;
|
|
1362
|
+
|
|
1363
|
+
(_opts$next = opts.next) === null || _opts$next === void 0 ? void 0 : _opts$next.call(opts, transformed.data);
|
|
1320
1364
|
return;
|
|
1321
1365
|
}
|
|
1322
1366
|
|
|
1323
|
-
(_opts$
|
|
1367
|
+
(_opts$error = opts.error) === null || _opts$error === void 0 ? void 0 : _opts$error.call(opts, transformed.error);
|
|
1324
1368
|
},
|
|
1325
1369
|
error: function error(err) {
|
|
1326
1370
|
var _opts$error2;
|
|
@@ -1344,4 +1388,4 @@ function createTRPCClient(opts) {
|
|
|
1344
1388
|
return new TRPCClient(opts);
|
|
1345
1389
|
}
|
|
1346
1390
|
|
|
1347
|
-
export { TRPCClientError, createTRPCClient, createWSClient, dedupeLink, getFetch, httpBatchLink, httpLink, loggerLink, retryLink, splitLink,
|
|
1391
|
+
export { TRPCClientError, createTRPCClient, createWSClient, dedupeLink, getFetch, httpBatchLink, httpLink, loggerLink, retryLink, splitLink, wsLink };
|