@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.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
|
-
key: key
|
|
234
|
-
};
|
|
253
|
+
function dispatch() {
|
|
254
|
+
var groupedItems = groupItems(pendingItems);
|
|
255
|
+
destroyTimerAndPendingItems(); // Create batches for each group of items
|
|
235
256
|
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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";
|
|
241
266
|
}
|
|
267
|
+
|
|
268
|
+
var batch = {
|
|
269
|
+
items: items,
|
|
270
|
+
cancel: throwFatalError
|
|
271
|
+
};
|
|
272
|
+
|
|
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();
|
|
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;
|
|
356
|
+
|
|
357
|
+
item.aborted = true;
|
|
264
358
|
|
|
265
|
-
if (
|
|
266
|
-
return
|
|
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
|
+
}
|
|
337
422
|
|
|
338
|
-
|
|
423
|
+
if (queryParts.length) {
|
|
424
|
+
url += '?' + queryParts.join('&');
|
|
339
425
|
}
|
|
340
426
|
|
|
427
|
+
return url;
|
|
428
|
+
}
|
|
429
|
+
function getBody(opts) {
|
|
430
|
+
if (opts.type === 'query') {
|
|
431
|
+
return undefined;
|
|
432
|
+
}
|
|
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) {
|
|
381
488
|
return op.path;
|
|
382
489
|
}).join(',');
|
|
383
|
-
var inputs =
|
|
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) {
|
|
505
|
+
return op.path;
|
|
506
|
+
}).join(',');
|
|
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
|
}
|
|
@@ -1020,7 +1080,7 @@ function createWSClient(opts) {
|
|
|
1020
1080
|
var TRPCWebSocketClosedError = /*#__PURE__*/function (_Error) {
|
|
1021
1081
|
_inherits__default["default"](TRPCWebSocketClosedError, _Error);
|
|
1022
1082
|
|
|
1023
|
-
var _super = /*#__PURE__*/_createSuper
|
|
1083
|
+
var _super = /*#__PURE__*/_createSuper(TRPCWebSocketClosedError);
|
|
1024
1084
|
|
|
1025
1085
|
function TRPCWebSocketClosedError(message) {
|
|
1026
1086
|
var _this;
|
|
@@ -1039,7 +1099,7 @@ var TRPCWebSocketClosedError = /*#__PURE__*/function (_Error) {
|
|
|
1039
1099
|
var TRPCSubscriptionEndedError = /*#__PURE__*/function (_Error2) {
|
|
1040
1100
|
_inherits__default["default"](TRPCSubscriptionEndedError, _Error2);
|
|
1041
1101
|
|
|
1042
|
-
var _super2 = /*#__PURE__*/_createSuper
|
|
1102
|
+
var _super2 = /*#__PURE__*/_createSuper(TRPCSubscriptionEndedError);
|
|
1043
1103
|
|
|
1044
1104
|
function TRPCSubscriptionEndedError(message) {
|
|
1045
1105
|
var _this2;
|
|
@@ -1056,16 +1116,16 @@ var TRPCSubscriptionEndedError = /*#__PURE__*/function (_Error2) {
|
|
|
1056
1116
|
}( /*#__PURE__*/_wrapNativeSuper__default["default"](Error));
|
|
1057
1117
|
|
|
1058
1118
|
function wsLink(opts) {
|
|
1059
|
-
return function () {
|
|
1119
|
+
return function (runtime) {
|
|
1060
1120
|
var client = opts.client;
|
|
1061
1121
|
return function (_ref2) {
|
|
1062
1122
|
var op = _ref2.op;
|
|
1063
|
-
return
|
|
1123
|
+
return observable.observable(function (observer) {
|
|
1064
1124
|
var type = op.type,
|
|
1065
|
-
input = op.input,
|
|
1066
1125
|
path = op.path,
|
|
1067
1126
|
id = op.id,
|
|
1068
1127
|
context = op.context;
|
|
1128
|
+
var input = runtime.transformer.serialize(op.input);
|
|
1069
1129
|
var isDone = false;
|
|
1070
1130
|
var unsub = client.request({
|
|
1071
1131
|
type: type,
|
|
@@ -1107,12 +1167,18 @@ function wsLink(opts) {
|
|
|
1107
1167
|
};
|
|
1108
1168
|
}
|
|
1109
1169
|
|
|
1170
|
+
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; }
|
|
1171
|
+
|
|
1172
|
+
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; }
|
|
1173
|
+
|
|
1110
1174
|
/** @internal */
|
|
1111
|
-
function transformOperationResult(result) {
|
|
1175
|
+
function transformOperationResult(result, runtime) {
|
|
1112
1176
|
var context = result.context;
|
|
1113
1177
|
|
|
1114
1178
|
if ('error' in result.data) {
|
|
1115
|
-
var error = TRPCClientError.from(result.data)
|
|
1179
|
+
var error = TRPCClientError.from(_objectSpread(_objectSpread({}, result.data), {}, {
|
|
1180
|
+
error: runtime.transformer.deserialize(result.data.error)
|
|
1181
|
+
}));
|
|
1116
1182
|
return {
|
|
1117
1183
|
ok: false,
|
|
1118
1184
|
error: error,
|
|
@@ -1120,75 +1186,39 @@ function transformOperationResult(result) {
|
|
|
1120
1186
|
};
|
|
1121
1187
|
}
|
|
1122
1188
|
|
|
1123
|
-
var data = result.data.result.data;
|
|
1189
|
+
var data = runtime.transformer.deserialize(result.data.result.data);
|
|
1124
1190
|
return {
|
|
1125
1191
|
ok: true,
|
|
1126
1192
|
data: data,
|
|
1127
1193
|
context: context
|
|
1128
1194
|
};
|
|
1129
1195
|
}
|
|
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
1196
|
/** @internal */
|
|
1154
1197
|
|
|
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
|
-
}
|
|
1198
|
+
function transformSubscriptionOperationResult(result, runtime) {
|
|
1199
|
+
var context = result.context;
|
|
1169
1200
|
|
|
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
|
-
}
|
|
1201
|
+
if ('error' in result.data) {
|
|
1202
|
+
var error = TRPCClientError.from(_objectSpread(_objectSpread({}, result.data), {}, {
|
|
1203
|
+
error: runtime.transformer.deserialize(result.data.error)
|
|
1204
|
+
}), {
|
|
1205
|
+
meta: context
|
|
1185
1206
|
});
|
|
1186
|
-
|
|
1207
|
+
return {
|
|
1208
|
+
ok: false,
|
|
1209
|
+
error: error,
|
|
1210
|
+
context: context
|
|
1211
|
+
};
|
|
1212
|
+
}
|
|
1213
|
+
|
|
1214
|
+
var data = _objectSpread(_objectSpread({}, result.data.result), result.data.result.type === 'data' && {
|
|
1215
|
+
data: runtime.transformer.deserialize(result.data.result.data)
|
|
1187
1216
|
});
|
|
1217
|
+
|
|
1188
1218
|
return {
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1219
|
+
ok: true,
|
|
1220
|
+
data: data,
|
|
1221
|
+
context: context
|
|
1192
1222
|
};
|
|
1193
1223
|
}
|
|
1194
1224
|
|
|
@@ -1224,10 +1254,22 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
1224
1254
|
};
|
|
1225
1255
|
}
|
|
1226
1256
|
|
|
1257
|
+
var transformer = opts.transformer ? 'input' in opts.transformer ? {
|
|
1258
|
+
serialize: opts.transformer.input.serialize,
|
|
1259
|
+
deserialize: opts.transformer.output.deserialize
|
|
1260
|
+
} : opts.transformer : {
|
|
1261
|
+
serialize: function serialize(data) {
|
|
1262
|
+
return data;
|
|
1263
|
+
},
|
|
1264
|
+
deserialize: function deserialize(data) {
|
|
1265
|
+
return data;
|
|
1266
|
+
}
|
|
1267
|
+
};
|
|
1227
1268
|
this.runtime = {
|
|
1228
1269
|
AbortController: AC,
|
|
1229
1270
|
fetch: _fetch,
|
|
1230
|
-
headers: getHeadersFn()
|
|
1271
|
+
headers: getHeadersFn(),
|
|
1272
|
+
transformer: transformer
|
|
1231
1273
|
};
|
|
1232
1274
|
|
|
1233
1275
|
if ('links' in opts) {
|
|
@@ -1259,20 +1301,22 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
1259
1301
|
context: context
|
|
1260
1302
|
}
|
|
1261
1303
|
});
|
|
1262
|
-
return chain$.pipe(
|
|
1304
|
+
return chain$.pipe(observable.share());
|
|
1263
1305
|
}
|
|
1264
1306
|
}, {
|
|
1265
1307
|
key: "requestAsPromise",
|
|
1266
1308
|
value: function requestAsPromise(opts) {
|
|
1309
|
+
var _this2 = this;
|
|
1310
|
+
|
|
1267
1311
|
var req$ = this.$request(opts);
|
|
1268
1312
|
|
|
1269
|
-
var _observableToPromise = observableToPromise(req$),
|
|
1313
|
+
var _observableToPromise = observable.observableToPromise(req$),
|
|
1270
1314
|
promise = _observableToPromise.promise,
|
|
1271
1315
|
abort = _observableToPromise.abort;
|
|
1272
1316
|
|
|
1273
1317
|
var cancellablePromise = new Promise(function (resolve, reject) {
|
|
1274
1318
|
promise.then(function (result) {
|
|
1275
|
-
var transformed = transformOperationResult(result);
|
|
1319
|
+
var transformed = transformOperationResult(result, _this2.runtime);
|
|
1276
1320
|
|
|
1277
1321
|
if (transformed.ok) {
|
|
1278
1322
|
resolve(transformed.data);
|
|
@@ -1322,21 +1366,21 @@ var TRPCClient = /*#__PURE__*/function () {
|
|
|
1322
1366
|
input: input,
|
|
1323
1367
|
context: opts.context
|
|
1324
1368
|
});
|
|
1369
|
+
var runtime = this.runtime;
|
|
1325
1370
|
return observable$.subscribe({
|
|
1326
1371
|
next: function next(result) {
|
|
1327
|
-
var _opts$
|
|
1372
|
+
var _opts$error;
|
|
1328
1373
|
|
|
1329
|
-
|
|
1330
|
-
var _opts$error;
|
|
1374
|
+
var transformed = transformSubscriptionOperationResult(result, runtime);
|
|
1331
1375
|
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
(_opts$
|
|
1376
|
+
if (transformed.ok) {
|
|
1377
|
+
var _opts$next;
|
|
1378
|
+
|
|
1379
|
+
(_opts$next = opts.next) === null || _opts$next === void 0 ? void 0 : _opts$next.call(opts, transformed.data);
|
|
1336
1380
|
return;
|
|
1337
1381
|
}
|
|
1338
1382
|
|
|
1339
|
-
(_opts$
|
|
1383
|
+
(_opts$error = opts.error) === null || _opts$error === void 0 ? void 0 : _opts$error.call(opts, transformed.error);
|
|
1340
1384
|
},
|
|
1341
1385
|
error: function error(err) {
|
|
1342
1386
|
var _opts$error2;
|
|
@@ -1370,5 +1414,4 @@ exports.httpLink = httpLink;
|
|
|
1370
1414
|
exports.loggerLink = loggerLink;
|
|
1371
1415
|
exports.retryLink = retryLink;
|
|
1372
1416
|
exports.splitLink = splitLink;
|
|
1373
|
-
exports.transformerLink = transformerLink;
|
|
1374
1417
|
exports.wsLink = wsLink;
|