@trpc/client 10.0.0-alpha.21 → 10.0.0-alpha.24
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 +329 -276
- package/dist/index.mjs +317 -263
- 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/links/wsLink/dist/trpc-client-links-wsLink.cjs.dev.js +2 -0
- package/links/wsLink/dist/trpc-client-links-wsLink.cjs.prod.js +2 -0
- package/links/wsLink/dist/trpc-client-links-wsLink.esm.js +2 -0
- 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 +13 -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.js
CHANGED
|
@@ -4,13 +4,13 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
6
6
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
7
|
+
var observable = require('@trpc/server/observable');
|
|
7
8
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
8
9
|
var _assertThisInitialized = require('@babel/runtime/helpers/assertThisInitialized');
|
|
9
10
|
var _inherits = require('@babel/runtime/helpers/inherits');
|
|
10
11
|
var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
|
|
11
12
|
var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
|
|
12
13
|
var _wrapNativeSuper = require('@babel/runtime/helpers/wrapNativeSuper');
|
|
13
|
-
var tap = require('./tap-0dcdee86.js');
|
|
14
14
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
15
15
|
|
|
16
16
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
@@ -29,14 +29,14 @@ function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if
|
|
|
29
29
|
|
|
30
30
|
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__default["default"](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; }
|
|
31
31
|
|
|
32
|
-
function _createSuper$
|
|
32
|
+
function _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); 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); }; }
|
|
33
33
|
|
|
34
|
-
function _isNativeReflectConstruct$
|
|
34
|
+
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; } }
|
|
35
35
|
|
|
36
36
|
var TRPCClientError = /*#__PURE__*/function (_Error) {
|
|
37
37
|
_inherits__default["default"](TRPCClientError, _Error);
|
|
38
38
|
|
|
39
|
-
var _super = /*#__PURE__*/_createSuper$
|
|
39
|
+
var _super = /*#__PURE__*/_createSuper$1(TRPCClientError);
|
|
40
40
|
|
|
41
41
|
function TRPCClientError(message, opts) {
|
|
42
42
|
var _opts$result, _opts$result2;
|
|
@@ -137,12 +137,12 @@ function dedupeLink() {
|
|
|
137
137
|
|
|
138
138
|
if (pending[key]) {
|
|
139
139
|
// console.log('hooking into pending', { op });
|
|
140
|
-
return
|
|
140
|
+
return observable.observable(function (observer) {
|
|
141
141
|
return pending[key].subscribe(observer);
|
|
142
142
|
});
|
|
143
143
|
}
|
|
144
144
|
|
|
145
|
-
var shared$ =
|
|
145
|
+
var shared$ = observable.observable(function (observer) {
|
|
146
146
|
function reset() {
|
|
147
147
|
delete pending[key];
|
|
148
148
|
}
|
|
@@ -164,7 +164,7 @@ function dedupeLink() {
|
|
|
164
164
|
reset();
|
|
165
165
|
subscription.unsubscribe();
|
|
166
166
|
};
|
|
167
|
-
}).pipe(
|
|
167
|
+
}).pipe(observable.share());
|
|
168
168
|
pending[key] = shared$;
|
|
169
169
|
return shared$;
|
|
170
170
|
};
|
|
@@ -177,82 +177,174 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
177
177
|
|
|
178
178
|
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; }
|
|
179
179
|
|
|
180
|
+
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* A function that should never be called unless we messed something up.
|
|
184
|
+
*/
|
|
185
|
+
var throwFatalError = function throwFatalError() {
|
|
186
|
+
throw new Error('Something went wrong. Please submit an issue at https://github.com/trpc/trpc/issues/new');
|
|
187
|
+
};
|
|
180
188
|
/**
|
|
181
189
|
* Dataloader that's very inspired by https://github.com/graphql/dataloader
|
|
182
190
|
* Less configuration, no caching, and allows you to cancel requests
|
|
183
191
|
* When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
|
|
184
192
|
*/
|
|
185
|
-
|
|
186
|
-
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
function dataLoader(batchLoader) {
|
|
196
|
+
var pendingItems = null;
|
|
187
197
|
var dispatchTimer = null;
|
|
188
198
|
|
|
189
|
-
var
|
|
199
|
+
var destroyTimerAndPendingItems = function destroyTimerAndPendingItems() {
|
|
190
200
|
clearTimeout(dispatchTimer);
|
|
191
201
|
dispatchTimer = null;
|
|
192
|
-
|
|
202
|
+
pendingItems = null;
|
|
193
203
|
};
|
|
204
|
+
/**
|
|
205
|
+
* Iterate through the items and split them into groups based on the `batchLoader`'s validate function
|
|
206
|
+
*/
|
|
194
207
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
var
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
batchCopy.cancel = cancel;
|
|
207
|
-
promise.then(function (result) {
|
|
208
|
-
for (var i = 0; i < result.length; i++) {
|
|
209
|
-
var _value = result[i]; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
210
|
-
|
|
211
|
-
batchCopy.items[i].resolve(_value);
|
|
208
|
+
|
|
209
|
+
function groupItems(items) {
|
|
210
|
+
var groupedItems = [[]];
|
|
211
|
+
var index = 0;
|
|
212
|
+
|
|
213
|
+
while (true) {
|
|
214
|
+
var item = items[index];
|
|
215
|
+
|
|
216
|
+
if (!item) {
|
|
217
|
+
// we're done
|
|
218
|
+
break;
|
|
212
219
|
}
|
|
213
|
-
|
|
214
|
-
var
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
}
|
|
222
|
-
} catch (err) {
|
|
223
|
-
_iterator.e(err);
|
|
224
|
-
} finally {
|
|
225
|
-
_iterator.f();
|
|
220
|
+
|
|
221
|
+
var lastGroup = groupedItems[groupedItems.length - 1];
|
|
222
|
+
|
|
223
|
+
if (item.aborted) {
|
|
224
|
+
// Item was aborted before it was dispatched
|
|
225
|
+
item.reject(new Error('Aborted'));
|
|
226
|
+
index++;
|
|
227
|
+
continue;
|
|
226
228
|
}
|
|
227
|
-
|
|
229
|
+
|
|
230
|
+
var isValid = batchLoader.validate(lastGroup.concat(item).map(function (it) {
|
|
231
|
+
return it.key;
|
|
232
|
+
}));
|
|
233
|
+
|
|
234
|
+
if (isValid) {
|
|
235
|
+
lastGroup.push(item);
|
|
236
|
+
index++;
|
|
237
|
+
continue;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
if (lastGroup.length === 0) {
|
|
241
|
+
item.reject(new Error('Input is too big for a single dispatch'));
|
|
242
|
+
index++;
|
|
243
|
+
continue;
|
|
244
|
+
} // Create new group, next iteration will try to add the item to that
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
groupedItems.push([]);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
return groupedItems;
|
|
228
251
|
}
|
|
229
252
|
|
|
230
|
-
function
|
|
231
|
-
var
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
253
|
+
function dispatch() {
|
|
254
|
+
var groupedItems = groupItems(pendingItems);
|
|
255
|
+
destroyTimerAndPendingItems(); // Create batches for each group of items
|
|
256
|
+
|
|
257
|
+
var _iterator = _createForOfIteratorHelper(groupedItems),
|
|
258
|
+
_step;
|
|
259
|
+
|
|
260
|
+
try {
|
|
261
|
+
var _loop = function _loop() {
|
|
262
|
+
var items = _step.value;
|
|
263
|
+
|
|
264
|
+
if (!items.length) {
|
|
265
|
+
return "continue";
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
var batch = {
|
|
269
|
+
items: items,
|
|
270
|
+
cancel: throwFatalError
|
|
271
|
+
};
|
|
235
272
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
273
|
+
var _iterator2 = _createForOfIteratorHelper(items),
|
|
274
|
+
_step2;
|
|
275
|
+
|
|
276
|
+
try {
|
|
277
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
278
|
+
var item = _step2.value;
|
|
279
|
+
item.batch = batch;
|
|
280
|
+
}
|
|
281
|
+
} catch (err) {
|
|
282
|
+
_iterator2.e(err);
|
|
283
|
+
} finally {
|
|
284
|
+
_iterator2.f();
|
|
241
285
|
}
|
|
286
|
+
|
|
287
|
+
var _batchLoader$fetch = batchLoader.fetch(batch.items.map(function (_item) {
|
|
288
|
+
return _item.key;
|
|
289
|
+
})),
|
|
290
|
+
promise = _batchLoader$fetch.promise,
|
|
291
|
+
cancel = _batchLoader$fetch.cancel;
|
|
292
|
+
|
|
293
|
+
batch.cancel = cancel;
|
|
294
|
+
promise.then(function (result) {
|
|
295
|
+
for (var i = 0; i < result.length; i++) {
|
|
296
|
+
var _value = result[i];
|
|
297
|
+
var item = batch.items[i];
|
|
298
|
+
item.resolve(_value);
|
|
299
|
+
item.batch = null;
|
|
300
|
+
}
|
|
301
|
+
}).catch(function (cause) {
|
|
302
|
+
var _iterator3 = _createForOfIteratorHelper(batch.items),
|
|
303
|
+
_step3;
|
|
304
|
+
|
|
305
|
+
try {
|
|
306
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
307
|
+
var item = _step3.value;
|
|
308
|
+
item.reject(cause);
|
|
309
|
+
item.batch = null;
|
|
310
|
+
}
|
|
311
|
+
} catch (err) {
|
|
312
|
+
_iterator3.e(err);
|
|
313
|
+
} finally {
|
|
314
|
+
_iterator3.f();
|
|
315
|
+
}
|
|
316
|
+
});
|
|
242
317
|
};
|
|
318
|
+
|
|
319
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
320
|
+
var _ret = _loop();
|
|
321
|
+
|
|
322
|
+
if (_ret === "continue") continue;
|
|
323
|
+
}
|
|
324
|
+
} catch (err) {
|
|
325
|
+
_iterator.e(err);
|
|
326
|
+
} finally {
|
|
327
|
+
_iterator.f();
|
|
243
328
|
}
|
|
329
|
+
}
|
|
244
330
|
|
|
245
|
-
|
|
331
|
+
function load(key) {
|
|
332
|
+
var item = {
|
|
333
|
+
aborted: false,
|
|
334
|
+
key: key,
|
|
335
|
+
batch: null,
|
|
336
|
+
resolve: throwFatalError,
|
|
337
|
+
reject: throwFatalError
|
|
338
|
+
};
|
|
246
339
|
var promise = new Promise(function (resolve, reject) {
|
|
247
|
-
var item = batchItem;
|
|
248
340
|
item.reject = reject;
|
|
249
341
|
item.resolve = resolve;
|
|
250
|
-
thisBatch.items.push(item);
|
|
251
342
|
|
|
252
|
-
if (
|
|
253
|
-
|
|
254
|
-
return;
|
|
343
|
+
if (!pendingItems) {
|
|
344
|
+
pendingItems = [];
|
|
255
345
|
}
|
|
346
|
+
|
|
347
|
+
pendingItems.push(item);
|
|
256
348
|
});
|
|
257
349
|
|
|
258
350
|
if (!dispatchTimer) {
|
|
@@ -260,16 +352,17 @@ function dataLoader(fetchMany, opts) {
|
|
|
260
352
|
}
|
|
261
353
|
|
|
262
354
|
var cancel = function cancel() {
|
|
263
|
-
|
|
355
|
+
var _item$batch;
|
|
264
356
|
|
|
265
|
-
|
|
266
|
-
|
|
357
|
+
item.aborted = true;
|
|
358
|
+
|
|
359
|
+
if ((_item$batch = item.batch) !== null && _item$batch !== void 0 && _item$batch.items.every(function (item) {
|
|
360
|
+
return item.aborted;
|
|
267
361
|
})) {
|
|
268
|
-
//
|
|
269
|
-
|
|
362
|
+
// All items in the batch have been cancelled
|
|
363
|
+
item.batch.cancel();
|
|
364
|
+
item.batch = null;
|
|
270
365
|
}
|
|
271
|
-
|
|
272
|
-
thisBatch.cancel();
|
|
273
366
|
};
|
|
274
367
|
|
|
275
368
|
return {
|
|
@@ -304,48 +397,56 @@ var METHOD = {
|
|
|
304
397
|
mutation: 'POST',
|
|
305
398
|
subscription: 'PATCH'
|
|
306
399
|
};
|
|
307
|
-
function httpRequest(props) {
|
|
308
|
-
var type = props.type,
|
|
309
|
-
rt = props.runtime,
|
|
310
|
-
path = props.path;
|
|
311
|
-
var ac = rt.AbortController ? new rt.AbortController() : null;
|
|
312
|
-
var input = 'input' in props ? props.input : arrayToDict(props.inputs);
|
|
313
|
-
|
|
314
|
-
function getUrl() {
|
|
315
|
-
var url = props.url + '/' + path;
|
|
316
|
-
var queryParts = [];
|
|
317
|
-
|
|
318
|
-
if ('inputs' in props) {
|
|
319
|
-
queryParts.push('batch=1');
|
|
320
|
-
}
|
|
321
400
|
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
401
|
+
function getInput(opts) {
|
|
402
|
+
return 'input' in opts ? opts.runtime.transformer.serialize(opts.input) : arrayToDict(opts.inputs.map(function (_input) {
|
|
403
|
+
return opts.runtime.transformer.serialize(_input);
|
|
404
|
+
}));
|
|
405
|
+
}
|
|
325
406
|
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
407
|
+
function getUrl(opts) {
|
|
408
|
+
var url = opts.url + '/' + opts.path;
|
|
409
|
+
var queryParts = [];
|
|
329
410
|
|
|
330
|
-
|
|
411
|
+
if ('inputs' in opts) {
|
|
412
|
+
queryParts.push('batch=1');
|
|
331
413
|
}
|
|
332
414
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
415
|
+
if (opts.type === 'query') {
|
|
416
|
+
var input = getInput(opts);
|
|
417
|
+
|
|
418
|
+
if (input !== undefined) {
|
|
419
|
+
queryParts.push("input=".concat(encodeURIComponent(JSON.stringify(input))));
|
|
336
420
|
}
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
if (queryParts.length) {
|
|
424
|
+
url += '?' + queryParts.join('&');
|
|
425
|
+
}
|
|
337
426
|
|
|
338
|
-
|
|
427
|
+
return url;
|
|
428
|
+
}
|
|
429
|
+
function getBody(opts) {
|
|
430
|
+
if (opts.type === 'query') {
|
|
431
|
+
return undefined;
|
|
339
432
|
}
|
|
340
433
|
|
|
434
|
+
var input = getInput(opts);
|
|
435
|
+
return input !== undefined ? JSON.stringify(input) : undefined;
|
|
436
|
+
}
|
|
437
|
+
function httpRequest(opts) {
|
|
438
|
+
var type = opts.type,
|
|
439
|
+
runtime = opts.runtime;
|
|
440
|
+
var ac = runtime.AbortController ? new runtime.AbortController() : null;
|
|
341
441
|
var promise = new Promise(function (resolve, reject) {
|
|
342
|
-
var url = getUrl();
|
|
442
|
+
var url = getUrl(opts);
|
|
443
|
+
var body = getBody(opts);
|
|
343
444
|
var meta = {};
|
|
344
|
-
Promise.resolve(
|
|
345
|
-
return
|
|
445
|
+
Promise.resolve(runtime.headers()).then(function (headers) {
|
|
446
|
+
return runtime.fetch(url, {
|
|
346
447
|
method: METHOD[type],
|
|
347
448
|
signal: ac === null || ac === void 0 ? void 0 : ac.signal,
|
|
348
|
-
body:
|
|
449
|
+
body: body,
|
|
349
450
|
headers: _objectSpread$2({
|
|
350
451
|
'content-type': 'application/json'
|
|
351
452
|
}, headers)
|
|
@@ -372,31 +473,54 @@ function httpRequest(props) {
|
|
|
372
473
|
}
|
|
373
474
|
|
|
374
475
|
function httpBatchLink(opts) {
|
|
375
|
-
|
|
376
|
-
|
|
476
|
+
// initialized config
|
|
377
477
|
return function (runtime) {
|
|
378
|
-
var
|
|
379
|
-
|
|
380
|
-
|
|
478
|
+
var maxURLLength = opts.maxURLLength || Infinity;
|
|
479
|
+
|
|
480
|
+
var batchLoader = function batchLoader(type) {
|
|
481
|
+
var validate = function validate(batchOps) {
|
|
482
|
+
if (maxURLLength === Infinity) {
|
|
483
|
+
// escape hatch for quick calcs
|
|
484
|
+
return true;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
var path = batchOps.map(function (op) {
|
|
488
|
+
return op.path;
|
|
489
|
+
}).join(',');
|
|
490
|
+
var inputs = batchOps.map(function (op) {
|
|
491
|
+
return op.input;
|
|
492
|
+
});
|
|
493
|
+
var url = getUrl({
|
|
494
|
+
url: opts.url,
|
|
495
|
+
runtime: runtime,
|
|
496
|
+
type: type,
|
|
497
|
+
path: path,
|
|
498
|
+
inputs: inputs
|
|
499
|
+
});
|
|
500
|
+
return url.length <= maxURLLength;
|
|
501
|
+
};
|
|
502
|
+
|
|
503
|
+
var fetch = function fetch(batchOps) {
|
|
504
|
+
var path = batchOps.map(function (op) {
|
|
381
505
|
return op.path;
|
|
382
506
|
}).join(',');
|
|
383
|
-
var inputs =
|
|
507
|
+
var inputs = batchOps.map(function (op) {
|
|
384
508
|
return op.input;
|
|
385
509
|
});
|
|
386
510
|
|
|
387
511
|
var _httpRequest = httpRequest({
|
|
388
|
-
url: url,
|
|
389
|
-
inputs: inputs,
|
|
390
|
-
path: path,
|
|
512
|
+
url: opts.url,
|
|
391
513
|
runtime: runtime,
|
|
392
|
-
type: type
|
|
514
|
+
type: type,
|
|
515
|
+
path: path,
|
|
516
|
+
inputs: inputs
|
|
393
517
|
}),
|
|
394
518
|
promise = _httpRequest.promise,
|
|
395
519
|
cancel = _httpRequest.cancel;
|
|
396
520
|
|
|
397
521
|
return {
|
|
398
522
|
promise: promise.then(function (res) {
|
|
399
|
-
var resJSON = Array.isArray(res.json) ? res.json :
|
|
523
|
+
var resJSON = Array.isArray(res.json) ? res.json : batchOps.map(function () {
|
|
400
524
|
return res.json;
|
|
401
525
|
});
|
|
402
526
|
var result = resJSON.map(function (item) {
|
|
@@ -410,11 +534,16 @@ function httpBatchLink(opts) {
|
|
|
410
534
|
cancel: cancel
|
|
411
535
|
};
|
|
412
536
|
};
|
|
537
|
+
|
|
538
|
+
return {
|
|
539
|
+
validate: validate,
|
|
540
|
+
fetch: fetch
|
|
541
|
+
};
|
|
413
542
|
};
|
|
414
543
|
|
|
415
|
-
var query = dataLoader(
|
|
416
|
-
var mutation = dataLoader(
|
|
417
|
-
var subscription = dataLoader(
|
|
544
|
+
var query = dataLoader(batchLoader('query'));
|
|
545
|
+
var mutation = dataLoader(batchLoader('mutation'));
|
|
546
|
+
var subscription = dataLoader(batchLoader('subscription'));
|
|
418
547
|
var loaders = {
|
|
419
548
|
query: query,
|
|
420
549
|
subscription: subscription,
|
|
@@ -422,7 +551,7 @@ function httpBatchLink(opts) {
|
|
|
422
551
|
};
|
|
423
552
|
return function (_ref) {
|
|
424
553
|
var op = _ref.op;
|
|
425
|
-
return
|
|
554
|
+
return observable.observable(function (observer) {
|
|
426
555
|
var loader = loaders[op.type];
|
|
427
556
|
|
|
428
557
|
var _loader$load = loader.load(op),
|
|
@@ -451,17 +580,17 @@ function httpLink(opts) {
|
|
|
451
580
|
return function (runtime) {
|
|
452
581
|
return function (_ref) {
|
|
453
582
|
var op = _ref.op;
|
|
454
|
-
return
|
|
583
|
+
return observable.observable(function (observer) {
|
|
455
584
|
var path = op.path,
|
|
456
585
|
input = op.input,
|
|
457
586
|
type = op.type;
|
|
458
587
|
|
|
459
588
|
var _httpRequest = httpRequest({
|
|
589
|
+
url: url,
|
|
460
590
|
runtime: runtime,
|
|
461
|
-
path: path,
|
|
462
|
-
input: input,
|
|
463
591
|
type: type,
|
|
464
|
-
|
|
592
|
+
path: path,
|
|
593
|
+
input: input
|
|
465
594
|
}),
|
|
466
595
|
promise = _httpRequest.promise,
|
|
467
596
|
cancel = _httpRequest.cancel;
|
|
@@ -540,7 +669,7 @@ function loggerLink() {
|
|
|
540
669
|
return function (_ref) {
|
|
541
670
|
var op = _ref.op,
|
|
542
671
|
next = _ref.next;
|
|
543
|
-
return
|
|
672
|
+
return observable.observable(function (observer) {
|
|
544
673
|
// ->
|
|
545
674
|
enabled(_objectSpread$1(_objectSpread$1({}, op), {}, {
|
|
546
675
|
direction: 'up'
|
|
@@ -561,7 +690,7 @@ function loggerLink() {
|
|
|
561
690
|
}));
|
|
562
691
|
}
|
|
563
692
|
|
|
564
|
-
return next(op).pipe(
|
|
693
|
+
return next(op).pipe(observable.tap({
|
|
565
694
|
next: function next(result) {
|
|
566
695
|
logResult(result);
|
|
567
696
|
},
|
|
@@ -582,7 +711,7 @@ function retryLink(opts) {
|
|
|
582
711
|
var op = _ref.op,
|
|
583
712
|
next = _ref.next;
|
|
584
713
|
// initialized for request
|
|
585
|
-
return
|
|
714
|
+
return observable.observable(function (observer) {
|
|
586
715
|
var next$ = null;
|
|
587
716
|
var attempts = 0;
|
|
588
717
|
var isDone = false;
|
|
@@ -638,7 +767,7 @@ function retryLink(opts) {
|
|
|
638
767
|
|
|
639
768
|
/** @internal */
|
|
640
769
|
function createChain(opts) {
|
|
641
|
-
return
|
|
770
|
+
return observable.observable(function (observer) {
|
|
642
771
|
function execute() {
|
|
643
772
|
var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
644
773
|
var op = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : opts.op;
|
|
@@ -663,15 +792,15 @@ function asArray(value) {
|
|
|
663
792
|
}
|
|
664
793
|
|
|
665
794
|
function splitLink(opts) {
|
|
666
|
-
return function (
|
|
795
|
+
return function (runtime) {
|
|
667
796
|
var yes = asArray(opts.true).map(function (link) {
|
|
668
|
-
return link(
|
|
797
|
+
return link(runtime);
|
|
669
798
|
});
|
|
670
799
|
var no = asArray(opts.false).map(function (link) {
|
|
671
|
-
return link(
|
|
800
|
+
return link(runtime);
|
|
672
801
|
});
|
|
673
802
|
return function (props) {
|
|
674
|
-
return
|
|
803
|
+
return observable.observable(function (observer) {
|
|
675
804
|
var links = opts.condition(props.op) ? yes : no;
|
|
676
805
|
return createChain({
|
|
677
806
|
op: props.op,
|
|
@@ -682,81 +811,14 @@ function splitLink(opts) {
|
|
|
682
811
|
};
|
|
683
812
|
}
|
|
684
813
|
|
|
685
|
-
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; }
|
|
686
|
-
|
|
687
|
-
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__default["default"](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; }
|
|
688
|
-
|
|
689
|
-
/**
|
|
690
|
-
* @internal
|
|
691
|
-
*/
|
|
692
|
-
function transformOperationResult$1(result, transformer) {
|
|
693
|
-
if ('error' in result.data) {
|
|
694
|
-
return _objectSpread(_objectSpread({}, result), {}, {
|
|
695
|
-
data: _objectSpread(_objectSpread({}, result.data), {}, {
|
|
696
|
-
error: transformer.deserialize(result.data.error)
|
|
697
|
-
})
|
|
698
|
-
});
|
|
699
|
-
}
|
|
700
|
-
|
|
701
|
-
if (result.data.result.type !== 'data') {
|
|
702
|
-
return result;
|
|
703
|
-
}
|
|
704
|
-
|
|
705
|
-
return _objectSpread(_objectSpread({}, result), {}, {
|
|
706
|
-
data: _objectSpread(_objectSpread({}, result.data), {}, {
|
|
707
|
-
result: _objectSpread(_objectSpread({}, result.data.result), {}, {
|
|
708
|
-
data: transformer.deserialize(result.data.result.data)
|
|
709
|
-
})
|
|
710
|
-
})
|
|
711
|
-
});
|
|
712
|
-
}
|
|
713
|
-
|
|
714
|
-
function transformerLink(transformer) {
|
|
715
|
-
var _transformer = transformer ? 'input' in transformer ? {
|
|
716
|
-
serialize: transformer.input.serialize,
|
|
717
|
-
deserialize: transformer.output.deserialize
|
|
718
|
-
} : transformer : {
|
|
719
|
-
serialize: function serialize(data) {
|
|
720
|
-
return data;
|
|
721
|
-
},
|
|
722
|
-
deserialize: function deserialize(data) {
|
|
723
|
-
return data;
|
|
724
|
-
}
|
|
725
|
-
};
|
|
726
|
-
|
|
727
|
-
return function () {
|
|
728
|
-
return function (props) {
|
|
729
|
-
var input = _transformer.serialize(props.op.input);
|
|
730
|
-
|
|
731
|
-
return tap.observable(function (observer) {
|
|
732
|
-
var subscription = props.next(_objectSpread(_objectSpread({}, props.op), {}, {
|
|
733
|
-
input: input
|
|
734
|
-
})).subscribe({
|
|
735
|
-
next: function next(value) {
|
|
736
|
-
var transformed = transformOperationResult$1(value, _transformer);
|
|
737
|
-
observer.next(transformed);
|
|
738
|
-
},
|
|
739
|
-
error: function error(err) {
|
|
740
|
-
observer.error(err);
|
|
741
|
-
},
|
|
742
|
-
complete: function complete() {
|
|
743
|
-
observer.complete();
|
|
744
|
-
}
|
|
745
|
-
});
|
|
746
|
-
return subscription;
|
|
747
|
-
});
|
|
748
|
-
};
|
|
749
|
-
};
|
|
750
|
-
}
|
|
751
|
-
|
|
752
814
|
/* istanbul ignore next */
|
|
753
815
|
var retryDelay = function retryDelay(attemptIndex) {
|
|
754
816
|
return attemptIndex === 0 ? 0 : Math.min(1000 * Math.pow(2, attemptIndex), 30000);
|
|
755
817
|
};
|
|
756
818
|
|
|
757
|
-
function _createSuper
|
|
819
|
+
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); }; }
|
|
758
820
|
|
|
759
|
-
function _isNativeReflectConstruct
|
|
821
|
+
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; } }
|
|
760
822
|
function createWSClient(opts) {
|
|
761
823
|
var url = opts.url,
|
|
762
824
|
_opts$WebSocket = opts.WebSocket,
|
|
@@ -968,7 +1030,6 @@ function createWSClient(opts) {
|
|
|
968
1030
|
id = op.id;
|
|
969
1031
|
var envelope = {
|
|
970
1032
|
id: id,
|
|
971
|
-
jsonrpc: '2.0',
|
|
972
1033
|
method: type,
|
|
973
1034
|
params: {
|
|
974
1035
|
input: input,
|
|
@@ -997,8 +1058,7 @@ function createWSClient(opts) {
|
|
|
997
1058
|
if (op.type === 'subscription') {
|
|
998
1059
|
outgoing.push({
|
|
999
1060
|
id: id,
|
|
1000
|
-
method: 'subscription.stop'
|
|
1001
|
-
params: undefined
|
|
1061
|
+
method: 'subscription.stop'
|
|
1002
1062
|
});
|
|
1003
1063
|
dispatch();
|
|
1004
1064
|
}
|
|
@@ -1009,6 +1069,8 @@ function createWSClient(opts) {
|
|
|
1009
1069
|
close: function close() {
|
|
1010
1070
|
state = 'closed';
|
|
1011
1071
|
closeIfNoPending(activeConnection);
|
|
1072
|
+
clearTimeout(connectTimer);
|
|
1073
|
+
connectTimer = null;
|
|
1012
1074
|
},
|
|
1013
1075
|
request: request,
|
|
1014
1076
|
getConnection: function getConnection() {
|
|
@@ -1020,7 +1082,7 @@ function createWSClient(opts) {
|
|
|
1020
1082
|
var TRPCWebSocketClosedError = /*#__PURE__*/function (_Error) {
|
|
1021
1083
|
_inherits__default["default"](TRPCWebSocketClosedError, _Error);
|
|
1022
1084
|
|
|
1023
|
-
var _super = /*#__PURE__*/_createSuper
|
|
1085
|
+
var _super = /*#__PURE__*/_createSuper(TRPCWebSocketClosedError);
|
|
1024
1086
|
|
|
1025
1087
|
function TRPCWebSocketClosedError(message) {
|
|
1026
1088
|
var _this;
|
|
@@ -1039,7 +1101,7 @@ var TRPCWebSocketClosedError = /*#__PURE__*/function (_Error) {
|
|
|
1039
1101
|
var TRPCSubscriptionEndedError = /*#__PURE__*/function (_Error2) {
|
|
1040
1102
|
_inherits__default["default"](TRPCSubscriptionEndedError, _Error2);
|
|
1041
1103
|
|
|
1042
|
-
var _super2 = /*#__PURE__*/_createSuper
|
|
1104
|
+
var _super2 = /*#__PURE__*/_createSuper(TRPCSubscriptionEndedError);
|
|
1043
1105
|
|
|
1044
1106
|
function TRPCSubscriptionEndedError(message) {
|
|
1045
1107
|
var _this2;
|
|
@@ -1056,16 +1118,16 @@ var TRPCSubscriptionEndedError = /*#__PURE__*/function (_Error2) {
|
|
|
1056
1118
|
}( /*#__PURE__*/_wrapNativeSuper__default["default"](Error));
|
|
1057
1119
|
|
|
1058
1120
|
function wsLink(opts) {
|
|
1059
|
-
return function () {
|
|
1121
|
+
return function (runtime) {
|
|
1060
1122
|
var client = opts.client;
|
|
1061
1123
|
return function (_ref2) {
|
|
1062
1124
|
var op = _ref2.op;
|
|
1063
|
-
return
|
|
1125
|
+
return observable.observable(function (observer) {
|
|
1064
1126
|
var type = op.type,
|
|
1065
|
-
input = op.input,
|
|
1066
1127
|
path = op.path,
|
|
1067
1128
|
id = op.id,
|
|
1068
1129
|
context = op.context;
|
|
1130
|
+
var input = runtime.transformer.serialize(op.input);
|
|
1069
1131
|
var isDone = false;
|
|
1070
1132
|
var unsub = client.request({
|
|
1071
1133
|
type: type,
|
|
@@ -1107,12 +1169,18 @@ function wsLink(opts) {
|
|
|
1107
1169
|
};
|
|
1108
1170
|
}
|
|
1109
1171
|
|
|
1172
|
+
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; }
|
|
1173
|
+
|
|
1174
|
+
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__default["default"](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; }
|
|
1175
|
+
|
|
1110
1176
|
/** @internal */
|
|
1111
|
-
function transformOperationResult(result) {
|
|
1177
|
+
function transformOperationResult(result, runtime) {
|
|
1112
1178
|
var context = result.context;
|
|
1113
1179
|
|
|
1114
1180
|
if ('error' in result.data) {
|
|
1115
|
-
var error = TRPCClientError.from(result.data)
|
|
1181
|
+
var error = TRPCClientError.from(_objectSpread(_objectSpread({}, result.data), {}, {
|
|
1182
|
+
error: runtime.transformer.deserialize(result.data.error)
|
|
1183
|
+
}));
|
|
1116
1184
|
return {
|
|
1117
1185
|
ok: false,
|
|
1118
1186
|
error: error,
|
|
@@ -1120,75 +1188,39 @@ function transformOperationResult(result) {
|
|
|
1120
1188
|
};
|
|
1121
1189
|
}
|
|
1122
1190
|
|
|
1123
|
-
var data = result.data.result.data;
|
|
1191
|
+
var data = runtime.transformer.deserialize(result.data.result.data);
|
|
1124
1192
|
return {
|
|
1125
1193
|
ok: true,
|
|
1126
1194
|
data: data,
|
|
1127
1195
|
context: context
|
|
1128
1196
|
};
|
|
1129
1197
|
}
|
|
1130
|
-
|
|
1131
|
-
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); }; }
|
|
1132
|
-
|
|
1133
|
-
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; } }
|
|
1134
|
-
|
|
1135
|
-
var ObservableAbortError = /*#__PURE__*/function (_Error) {
|
|
1136
|
-
_inherits__default["default"](ObservableAbortError, _Error);
|
|
1137
|
-
|
|
1138
|
-
var _super = /*#__PURE__*/_createSuper(ObservableAbortError);
|
|
1139
|
-
|
|
1140
|
-
function ObservableAbortError(message) {
|
|
1141
|
-
var _this;
|
|
1142
|
-
|
|
1143
|
-
_classCallCheck__default["default"](this, ObservableAbortError);
|
|
1144
|
-
|
|
1145
|
-
_this = _super.call(this, message);
|
|
1146
|
-
_this.name = 'ObservableAbortError';
|
|
1147
|
-
Object.setPrototypeOf(_assertThisInitialized__default["default"](_this), ObservableAbortError.prototype);
|
|
1148
|
-
return _this;
|
|
1149
|
-
}
|
|
1150
|
-
|
|
1151
|
-
return _createClass__default["default"](ObservableAbortError);
|
|
1152
|
-
}( /*#__PURE__*/_wrapNativeSuper__default["default"](Error));
|
|
1153
1198
|
/** @internal */
|
|
1154
1199
|
|
|
1155
|
-
function
|
|
1156
|
-
var
|
|
1157
|
-
var promise = new Promise(function (resolve, reject) {
|
|
1158
|
-
var isDone = false;
|
|
1159
|
-
|
|
1160
|
-
function onDone() {
|
|
1161
|
-
if (isDone) {
|
|
1162
|
-
return;
|
|
1163
|
-
}
|
|
1164
|
-
|
|
1165
|
-
isDone = true;
|
|
1166
|
-
reject(new ObservableAbortError('This operation was cancelled.'));
|
|
1167
|
-
obs$.unsubscribe();
|
|
1168
|
-
}
|
|
1200
|
+
function transformSubscriptionOperationResult(result, runtime) {
|
|
1201
|
+
var context = result.context;
|
|
1169
1202
|
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
},
|
|
1176
|
-
error: function error(data) {
|
|
1177
|
-
isDone = true;
|
|
1178
|
-
reject(data);
|
|
1179
|
-
onDone();
|
|
1180
|
-
},
|
|
1181
|
-
complete: function complete() {
|
|
1182
|
-
isDone = true;
|
|
1183
|
-
onDone();
|
|
1184
|
-
}
|
|
1203
|
+
if ('error' in result.data) {
|
|
1204
|
+
var error = TRPCClientError.from(_objectSpread(_objectSpread({}, result.data), {}, {
|
|
1205
|
+
error: runtime.transformer.deserialize(result.data.error)
|
|
1206
|
+
}), {
|
|
1207
|
+
meta: context
|
|
1185
1208
|
});
|
|
1186
|
-
|
|
1209
|
+
return {
|
|
1210
|
+
ok: false,
|
|
1211
|
+
error: error,
|
|
1212
|
+
context: context
|
|
1213
|
+
};
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1216
|
+
var data = _objectSpread(_objectSpread({}, result.data.result), result.data.result.type === 'data' && {
|
|
1217
|
+
data: runtime.transformer.deserialize(result.data.result.data)
|
|
1187
1218
|
});
|
|
1219
|
+
|
|
1188
1220
|
return {
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1221
|
+
ok: true,
|
|
1222
|
+
data: data,
|
|
1223
|
+
context: context
|
|
1192
1224
|
};
|
|
1193
1225
|
}
|
|
1194
1226
|
|
|
@@ -1224,10 +1256,22 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
1224
1256
|
};
|
|
1225
1257
|
}
|
|
1226
1258
|
|
|
1259
|
+
var transformer = opts.transformer ? 'input' in opts.transformer ? {
|
|
1260
|
+
serialize: opts.transformer.input.serialize,
|
|
1261
|
+
deserialize: opts.transformer.output.deserialize
|
|
1262
|
+
} : opts.transformer : {
|
|
1263
|
+
serialize: function serialize(data) {
|
|
1264
|
+
return data;
|
|
1265
|
+
},
|
|
1266
|
+
deserialize: function deserialize(data) {
|
|
1267
|
+
return data;
|
|
1268
|
+
}
|
|
1269
|
+
};
|
|
1227
1270
|
this.runtime = {
|
|
1228
1271
|
AbortController: AC,
|
|
1229
1272
|
fetch: _fetch,
|
|
1230
|
-
headers: getHeadersFn()
|
|
1273
|
+
headers: getHeadersFn(),
|
|
1274
|
+
transformer: transformer
|
|
1231
1275
|
};
|
|
1232
1276
|
|
|
1233
1277
|
if ('links' in opts) {
|
|
@@ -1259,20 +1303,22 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
1259
1303
|
context: context
|
|
1260
1304
|
}
|
|
1261
1305
|
});
|
|
1262
|
-
return chain$.pipe(
|
|
1306
|
+
return chain$.pipe(observable.share());
|
|
1263
1307
|
}
|
|
1264
1308
|
}, {
|
|
1265
1309
|
key: "requestAsPromise",
|
|
1266
1310
|
value: function requestAsPromise(opts) {
|
|
1311
|
+
var _this2 = this;
|
|
1312
|
+
|
|
1267
1313
|
var req$ = this.$request(opts);
|
|
1268
1314
|
|
|
1269
|
-
var _observableToPromise = observableToPromise(req$),
|
|
1315
|
+
var _observableToPromise = observable.observableToPromise(req$),
|
|
1270
1316
|
promise = _observableToPromise.promise,
|
|
1271
1317
|
abort = _observableToPromise.abort;
|
|
1272
1318
|
|
|
1273
1319
|
var cancellablePromise = new Promise(function (resolve, reject) {
|
|
1274
1320
|
promise.then(function (result) {
|
|
1275
|
-
var transformed = transformOperationResult(result);
|
|
1321
|
+
var transformed = transformOperationResult(result, _this2.runtime);
|
|
1276
1322
|
|
|
1277
1323
|
if (transformed.ok) {
|
|
1278
1324
|
resolve(transformed.data);
|
|
@@ -1290,26 +1336,34 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
1290
1336
|
}, {
|
|
1291
1337
|
key: "query",
|
|
1292
1338
|
value: function query(path) {
|
|
1293
|
-
var
|
|
1339
|
+
var _args$;
|
|
1340
|
+
|
|
1341
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
1342
|
+
args[_key - 1] = arguments[_key];
|
|
1343
|
+
}
|
|
1294
1344
|
|
|
1295
|
-
var context = (
|
|
1345
|
+
var context = (_args$ = args[1]) === null || _args$ === void 0 ? void 0 : _args$.context;
|
|
1296
1346
|
return this.requestAsPromise({
|
|
1297
1347
|
type: 'query',
|
|
1298
1348
|
path: path,
|
|
1299
|
-
input:
|
|
1349
|
+
input: args[0],
|
|
1300
1350
|
context: context
|
|
1301
1351
|
});
|
|
1302
1352
|
}
|
|
1303
1353
|
}, {
|
|
1304
1354
|
key: "mutation",
|
|
1305
1355
|
value: function mutation(path) {
|
|
1306
|
-
var
|
|
1356
|
+
var _args$2;
|
|
1357
|
+
|
|
1358
|
+
for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
|
|
1359
|
+
args[_key2 - 1] = arguments[_key2];
|
|
1360
|
+
}
|
|
1307
1361
|
|
|
1308
|
-
var context = (
|
|
1362
|
+
var context = (_args$2 = args[1]) === null || _args$2 === void 0 ? void 0 : _args$2.context;
|
|
1309
1363
|
return this.requestAsPromise({
|
|
1310
1364
|
type: 'mutation',
|
|
1311
1365
|
path: path,
|
|
1312
|
-
input:
|
|
1366
|
+
input: args[0],
|
|
1313
1367
|
context: context
|
|
1314
1368
|
});
|
|
1315
1369
|
}
|
|
@@ -1322,21 +1376,21 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
1322
1376
|
input: input,
|
|
1323
1377
|
context: opts.context
|
|
1324
1378
|
});
|
|
1379
|
+
var runtime = this.runtime;
|
|
1325
1380
|
return observable$.subscribe({
|
|
1326
1381
|
next: function next(result) {
|
|
1327
|
-
var _opts$
|
|
1382
|
+
var _opts$error;
|
|
1328
1383
|
|
|
1329
|
-
|
|
1330
|
-
var _opts$error;
|
|
1384
|
+
var transformed = transformSubscriptionOperationResult(result, runtime);
|
|
1331
1385
|
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
(_opts$
|
|
1386
|
+
if (transformed.ok) {
|
|
1387
|
+
var _opts$next;
|
|
1388
|
+
|
|
1389
|
+
(_opts$next = opts.next) === null || _opts$next === void 0 ? void 0 : _opts$next.call(opts, transformed.data);
|
|
1336
1390
|
return;
|
|
1337
1391
|
}
|
|
1338
1392
|
|
|
1339
|
-
(_opts$
|
|
1393
|
+
(_opts$error = opts.error) === null || _opts$error === void 0 ? void 0 : _opts$error.call(opts, transformed.error);
|
|
1340
1394
|
},
|
|
1341
1395
|
error: function error(err) {
|
|
1342
1396
|
var _opts$error2;
|
|
@@ -1370,5 +1424,4 @@ exports.httpLink = httpLink;
|
|
|
1370
1424
|
exports.loggerLink = loggerLink;
|
|
1371
1425
|
exports.retryLink = retryLink;
|
|
1372
1426
|
exports.splitLink = splitLink;
|
|
1373
|
-
exports.transformerLink = transformerLink;
|
|
1374
1427
|
exports.wsLink = wsLink;
|