@trpc/client 9.16.0 → 10.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/dist/{TRPCClientError-bfee2bf5.cjs.dev.js → TRPCClientError-a5312a5f.cjs.dev.js} +14 -19
  2. package/dist/{TRPCClientError-09b8a26b.esm.js → TRPCClientError-e1da1ef0.esm.js} +14 -19
  3. package/dist/{TRPCClientError-e9bf96e9.cjs.prod.js → TRPCClientError-ea7d89b2.cjs.prod.js} +14 -19
  4. package/dist/createChain-93a38e1c.cjs.dev.js +27 -0
  5. package/dist/createChain-e45e052a.cjs.prod.js +27 -0
  6. package/dist/createChain-e45e6cf2.esm.js +25 -0
  7. package/dist/declarations/src/TRPCClientError.d.ts +6 -10
  8. package/dist/declarations/src/TRPCClientError.d.ts.map +1 -1
  9. package/dist/declarations/src/createTRPCClient.d.ts +1 -2
  10. package/dist/declarations/src/createTRPCClient.d.ts.map +1 -1
  11. package/dist/declarations/src/index.d.ts +1 -1
  12. package/dist/declarations/src/index.d.ts.map +1 -1
  13. package/dist/declarations/src/internals/TRPCClient.d.ts +17 -14
  14. package/dist/declarations/src/internals/TRPCClient.d.ts.map +1 -1
  15. package/dist/declarations/src/internals/dataLoader.d.ts +1 -1
  16. package/dist/declarations/src/internals/dataLoader.d.ts.map +1 -1
  17. package/dist/declarations/src/links/httpBatchLink.d.ts +2 -1
  18. package/dist/declarations/src/links/httpBatchLink.d.ts.map +1 -1
  19. package/dist/declarations/src/links/httpLink.d.ts +2 -1
  20. package/dist/declarations/src/links/httpLink.d.ts.map +1 -1
  21. package/dist/declarations/src/links/httpUtils.d.ts +22 -0
  22. package/dist/declarations/src/links/httpUtils.d.ts.map +1 -0
  23. package/dist/declarations/src/links/internals/createChain.d.ts +8 -0
  24. package/dist/declarations/src/links/internals/createChain.d.ts.map +1 -0
  25. package/dist/declarations/src/links/internals/transformOperationResult.d.ts +16 -0
  26. package/dist/declarations/src/links/internals/transformOperationResult.d.ts.map +1 -0
  27. package/dist/declarations/src/links/loggerLink.d.ts +4 -3
  28. package/dist/declarations/src/links/loggerLink.d.ts.map +1 -1
  29. package/dist/declarations/src/links/splitLink.d.ts +4 -14
  30. package/dist/declarations/src/links/splitLink.d.ts.map +1 -1
  31. package/dist/declarations/src/links/transformerLink.d.ts +4 -0
  32. package/dist/declarations/src/links/transformerLink.d.ts.map +1 -0
  33. package/dist/declarations/src/links/types.d.ts +40 -0
  34. package/dist/declarations/src/links/types.d.ts.map +1 -0
  35. package/dist/declarations/src/links/wsLink.d.ts +4 -11
  36. package/dist/declarations/src/links/wsLink.d.ts.map +1 -1
  37. package/dist/declarations/src/rx/index.d.ts +3 -0
  38. package/dist/declarations/src/rx/index.d.ts.map +1 -0
  39. package/dist/declarations/src/rx/observable.d.ts +4 -0
  40. package/dist/declarations/src/rx/observable.d.ts.map +1 -0
  41. package/dist/declarations/src/rx/operators/index.d.ts +4 -0
  42. package/dist/declarations/src/rx/operators/index.d.ts.map +1 -0
  43. package/dist/declarations/src/rx/operators/map.d.ts +3 -0
  44. package/dist/declarations/src/rx/operators/map.d.ts.map +1 -0
  45. package/dist/declarations/src/rx/operators/share.d.ts +6 -0
  46. package/dist/declarations/src/rx/operators/share.d.ts.map +1 -0
  47. package/dist/declarations/src/rx/operators/tap.d.ts +3 -0
  48. package/dist/declarations/src/rx/operators/tap.d.ts.map +1 -0
  49. package/dist/declarations/src/rx/types.d.ts +29 -0
  50. package/dist/declarations/src/rx/types.d.ts.map +1 -0
  51. package/dist/declarations/src/rx/util/identity.d.ts +2 -0
  52. package/dist/declarations/src/rx/util/identity.d.ts.map +1 -0
  53. package/dist/declarations/src/rx/util/observableToPromise.d.ts +10 -0
  54. package/dist/declarations/src/rx/util/observableToPromise.d.ts.map +1 -0
  55. package/dist/declarations/src/rx/util/pipe.d.ts +4 -0
  56. package/dist/declarations/src/rx/util/pipe.d.ts.map +1 -0
  57. package/dist/httpUtils-299a66f6.cjs.prod.js +89 -0
  58. package/dist/httpUtils-a1426e14.cjs.dev.js +89 -0
  59. package/dist/httpUtils-e45c9056.esm.js +87 -0
  60. package/dist/observable-01534ea8.esm.js +102 -0
  61. package/dist/observable-9aad8c3e.cjs.dev.js +104 -0
  62. package/dist/observable-ccb54234.cjs.prod.js +104 -0
  63. package/dist/share-5a8c2543.cjs.prod.js +106 -0
  64. package/dist/share-ca585761.esm.js +104 -0
  65. package/dist/share-f2ac9332.cjs.dev.js +106 -0
  66. package/dist/tap-2d565250.cjs.dev.js +32 -0
  67. package/dist/tap-606957cb.esm.js +30 -0
  68. package/dist/tap-d907998d.cjs.prod.js +32 -0
  69. package/dist/trpc-client.cjs.dev.js +136 -215
  70. package/dist/trpc-client.cjs.prod.js +136 -215
  71. package/dist/trpc-client.esm.js +137 -216
  72. package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.dev.js +34 -52
  73. package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.prod.js +34 -52
  74. package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.esm.js +33 -51
  75. package/links/httpLink/dist/trpc-client-links-httpLink.cjs.dev.js +29 -52
  76. package/links/httpLink/dist/trpc-client-links-httpLink.cjs.prod.js +29 -52
  77. package/links/httpLink/dist/trpc-client-links-httpLink.esm.js +29 -52
  78. package/links/loggerLink/dist/trpc-client-links-loggerLink.cjs.dev.js +31 -19
  79. package/links/loggerLink/dist/trpc-client-links-loggerLink.cjs.prod.js +31 -19
  80. package/links/loggerLink/dist/trpc-client-links-loggerLink.esm.js +31 -19
  81. package/links/splitLink/dist/trpc-client-links-splitLink.cjs.dev.js +20 -7
  82. package/links/splitLink/dist/trpc-client-links-splitLink.cjs.prod.js +20 -7
  83. package/links/splitLink/dist/trpc-client-links-splitLink.esm.js +20 -7
  84. package/links/transformerLink/dist/trpc-client-links-transformerLink.cjs.d.ts +1 -0
  85. package/links/transformerLink/dist/trpc-client-links-transformerLink.cjs.dev.js +67 -0
  86. package/links/transformerLink/dist/trpc-client-links-transformerLink.cjs.js +7 -0
  87. package/links/transformerLink/dist/trpc-client-links-transformerLink.cjs.prod.js +67 -0
  88. package/links/transformerLink/dist/trpc-client-links-transformerLink.esm.js +63 -0
  89. package/links/transformerLink/package.json +4 -0
  90. package/links/wsLink/dist/trpc-client-links-wsLink.cjs.dev.js +57 -81
  91. package/links/wsLink/dist/trpc-client-links-wsLink.cjs.prod.js +57 -81
  92. package/links/wsLink/dist/trpc-client-links-wsLink.esm.js +57 -81
  93. package/package.json +12 -8
  94. package/rx/dist/trpc-client-rx.cjs.d.ts +1 -0
  95. package/rx/dist/trpc-client-rx.cjs.dev.js +9 -0
  96. package/rx/dist/trpc-client-rx.cjs.js +7 -0
  97. package/rx/dist/trpc-client-rx.cjs.prod.js +9 -0
  98. package/rx/dist/trpc-client-rx.esm.js +1 -0
  99. package/rx/operators/dist/trpc-client-rx-operators.cjs.d.ts +1 -0
  100. package/rx/operators/dist/trpc-client-rx-operators.cjs.dev.js +39 -0
  101. package/rx/operators/dist/trpc-client-rx-operators.cjs.js +7 -0
  102. package/rx/operators/dist/trpc-client-rx-operators.cjs.prod.js +39 -0
  103. package/rx/operators/dist/trpc-client-rx-operators.esm.js +33 -0
  104. package/rx/operators/package.json +4 -0
  105. package/rx/package.json +4 -0
  106. package/src/TRPCClientError.ts +17 -21
  107. package/src/createTRPCClient.ts +4 -3
  108. package/src/index.ts +1 -1
  109. package/src/internals/TRPCClient.ts +80 -88
  110. package/src/internals/dataLoader.ts +1 -1
  111. package/src/internals/transformRPCResponse.ts +2 -2
  112. package/src/links/dedupeLink.test.ts +134 -0
  113. package/src/links/dedupeLink.ts +53 -0
  114. package/src/links/httpBatchLink.ts +37 -37
  115. package/src/links/httpLink.ts +26 -37
  116. package/src/{internals/httpRequest.ts → links/httpUtils.ts} +30 -21
  117. package/src/links/internals/createChain.test.ts +132 -0
  118. package/src/links/internals/createChain.ts +31 -0
  119. package/src/links/internals/transformOperationResult.ts +25 -0
  120. package/src/links/loggerLink.ts +40 -22
  121. package/src/links/retryLink.ts +45 -14
  122. package/src/links/splitLink.test.ts +56 -0
  123. package/src/links/splitLink.ts +23 -38
  124. package/src/links/transformerLink.ts +70 -0
  125. package/src/links/{core.ts → types.ts} +40 -46
  126. package/src/links/wsLink.ts +56 -77
  127. package/src/rx/index.ts +2 -0
  128. package/src/rx/observable.test.ts +83 -0
  129. package/src/rx/observable.ts +70 -0
  130. package/src/rx/operators/index.ts +3 -0
  131. package/src/rx/operators/map.test.ts +92 -0
  132. package/src/rx/operators/map.ts +25 -0
  133. package/src/rx/operators/share.test.ts +60 -0
  134. package/src/rx/operators/share.ts +67 -0
  135. package/src/rx/operators/tap.ts +26 -0
  136. package/src/rx/types.ts +69 -0
  137. package/src/rx/util/identity.ts +3 -0
  138. package/src/rx/util/observableToPromise.ts +49 -0
  139. package/src/rx/util/pipe.ts +22 -0
  140. package/dist/declarations/src/internals/TRPCAbortError.d.ts +0 -4
  141. package/dist/declarations/src/internals/TRPCAbortError.d.ts.map +0 -1
  142. package/dist/declarations/src/internals/executeChain.d.ts +0 -8
  143. package/dist/declarations/src/internals/executeChain.d.ts.map +0 -1
  144. package/dist/declarations/src/internals/httpRequest.d.ts +0 -14
  145. package/dist/declarations/src/internals/httpRequest.d.ts.map +0 -1
  146. package/dist/declarations/src/internals/observable.d.ts +0 -18
  147. package/dist/declarations/src/internals/observable.d.ts.map +0 -1
  148. package/dist/declarations/src/internals/transformRPCResponse.d.ts +0 -7
  149. package/dist/declarations/src/internals/transformRPCResponse.d.ts.map +0 -1
  150. package/dist/declarations/src/links/core.d.ts +0 -45
  151. package/dist/declarations/src/links/core.d.ts.map +0 -1
  152. package/dist/httpRequest-672ff1f0.esm.js +0 -128
  153. package/dist/httpRequest-7bfaf300.cjs.dev.js +0 -132
  154. package/dist/httpRequest-8c422e7a.cjs.prod.js +0 -132
  155. package/src/internals/TRPCAbortError.ts +0 -7
  156. package/src/internals/executeChain.ts +0 -67
  157. package/src/internals/observable.ts +0 -89
@@ -2,13 +2,14 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
6
5
  var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
7
6
  var _assertThisInitialized = require('@babel/runtime/helpers/assertThisInitialized');
8
7
  var _inherits = require('@babel/runtime/helpers/inherits');
9
8
  var _createSuper = require('@babel/runtime/helpers/createSuper');
10
9
  var _wrapNativeSuper = require('@babel/runtime/helpers/wrapNativeSuper');
11
- var TRPCClientError = require('../../../dist/TRPCClientError-e9bf96e9.cjs.prod.js');
10
+ var observable = require('../../../dist/observable-ccb54234.cjs.prod.js');
11
+ var TRPCClientError = require('../../../dist/TRPCClientError-ea7d89b2.cjs.prod.js');
12
+ require('@babel/runtime/helpers/objectSpread2');
12
13
  require('@babel/runtime/helpers/createClass');
13
14
 
14
15
  /* istanbul ignore next */
@@ -148,24 +149,19 @@ function createWSClient(opts) {
148
149
  }
149
150
  };
150
151
 
151
- var handleIncomingResponse = function handleIncomingResponse(res) {
152
- var _req$callbacks$onNext, _req$callbacks2;
152
+ var handleIncomingResponse = function handleIncomingResponse(data) {
153
+ var _req$callbacks$next, _req$callbacks;
153
154
 
154
- var req = res.id !== null && pendingRequests[res.id];
155
+ var req = data.id !== null && pendingRequests[data.id];
155
156
 
156
157
  if (!req) {
157
158
  // do something?
158
159
  return;
159
160
  }
160
161
 
161
- if ('error' in res) {
162
- var _req$callbacks$onErro, _req$callbacks;
163
-
164
- (_req$callbacks$onErro = (_req$callbacks = req.callbacks).onError) === null || _req$callbacks$onErro === void 0 ? void 0 : _req$callbacks$onErro.call(_req$callbacks, res);
165
- return;
166
- }
167
-
168
- (_req$callbacks$onNext = (_req$callbacks2 = req.callbacks).onNext) === null || _req$callbacks$onNext === void 0 ? void 0 : _req$callbacks$onNext.call(_req$callbacks2, res.result);
162
+ (_req$callbacks$next = (_req$callbacks = req.callbacks).next) === null || _req$callbacks$next === void 0 ? void 0 : _req$callbacks$next.call(_req$callbacks, {
163
+ data: data
164
+ });
169
165
 
170
166
  if (req.ws !== activeConnection && conn === activeConnection) {
171
167
  var oldWs = req.ws; // gracefully replace old connection with this
@@ -174,10 +170,8 @@ function createWSClient(opts) {
174
170
  closeIfNoPending(oldWs);
175
171
  }
176
172
 
177
- if (res.result.type === 'stopped' && conn === activeConnection) {
178
- var _req$callbacks$onDone, _req$callbacks3;
179
-
180
- (_req$callbacks$onDone = (_req$callbacks3 = req.callbacks).onDone) === null || _req$callbacks$onDone === void 0 ? void 0 : _req$callbacks$onDone.call(_req$callbacks3);
173
+ if ('result' in data && data.result.type === 'stopped' && conn === activeConnection) {
174
+ req.callbacks.complete();
181
175
  }
182
176
  };
183
177
 
@@ -203,7 +197,7 @@ function createWSClient(opts) {
203
197
  }
204
198
 
205
199
  for (var key in pendingRequests) {
206
- var _req$callbacks$onErro2, _req$callbacks4;
200
+ var _req$callbacks$error, _req$callbacks2;
207
201
 
208
202
  var req = pendingRequests[key];
209
203
 
@@ -211,13 +205,13 @@ function createWSClient(opts) {
211
205
  continue;
212
206
  }
213
207
 
214
- (_req$callbacks$onErro2 = (_req$callbacks4 = req.callbacks).onError) === null || _req$callbacks$onErro2 === void 0 ? void 0 : _req$callbacks$onErro2.call(_req$callbacks4, TRPCClientError.TRPCClientError.from(new TRPCWebSocketClosedError('WebSocket closed prematurely')));
208
+ (_req$callbacks$error = (_req$callbacks2 = req.callbacks).error) === null || _req$callbacks$error === void 0 ? void 0 : _req$callbacks$error.call(_req$callbacks2, TRPCClientError.TRPCClientError.from(new TRPCWebSocketClosedError('WebSocket closed prematurely')));
215
209
 
216
210
  if (req.type !== 'subscription') {
217
- var _req$callbacks$onDone2, _req$callbacks5;
211
+ var _req$callbacks$comple, _req$callbacks3;
218
212
 
219
213
  delete pendingRequests[key];
220
- (_req$callbacks$onDone2 = (_req$callbacks5 = req.callbacks).onDone) === null || _req$callbacks$onDone2 === void 0 ? void 0 : _req$callbacks$onDone2.call(_req$callbacks5);
214
+ (_req$callbacks$comple = (_req$callbacks3 = req.callbacks).complete) === null || _req$callbacks$comple === void 0 ? void 0 : _req$callbacks$comple.call(_req$callbacks3);
221
215
  } else if (state !== 'closed') {
222
216
  // request restart of sub with next connection
223
217
  resumeSubscriptionOnReconnect(req);
@@ -251,14 +245,14 @@ function createWSClient(opts) {
251
245
  outgoing.push(envelope);
252
246
  dispatch();
253
247
  return function () {
254
- var _pendingRequests$id, _callbacks$onDone;
248
+ var _pendingRequests$id, _callbacks$complete;
255
249
 
256
250
  var callbacks = (_pendingRequests$id = pendingRequests[id]) === null || _pendingRequests$id === void 0 ? void 0 : _pendingRequests$id.callbacks;
257
251
  delete pendingRequests[id];
258
252
  outgoing = outgoing.filter(function (msg) {
259
253
  return msg.id !== id;
260
254
  });
261
- callbacks === null || callbacks === void 0 ? void 0 : (_callbacks$onDone = callbacks.onDone) === null || _callbacks$onDone === void 0 ? void 0 : _callbacks$onDone.call(callbacks);
255
+ callbacks === null || callbacks === void 0 ? void 0 : (_callbacks$complete = callbacks.complete) === null || _callbacks$complete === void 0 ? void 0 : _callbacks$complete.call(callbacks);
262
256
 
263
257
  if (op.type === 'subscription') {
264
258
  outgoing.push({
@@ -322,70 +316,52 @@ var TRPCSubscriptionEndedError = /*#__PURE__*/function (_Error2) {
322
316
  }( /*#__PURE__*/_wrapNativeSuper(Error));
323
317
 
324
318
  function wsLink(opts) {
325
- // initialized config
326
- return function (rt) {
319
+ return function () {
327
320
  var client = opts.client;
328
321
  return function (_ref2) {
329
- var op = _ref2.op,
330
- prev = _ref2.prev,
331
- onDestroy = _ref2.onDestroy;
332
- var type = op.type,
333
- rawInput = op.input,
334
- path = op.path,
335
- id = op.id;
336
- var input = rt.transformer.serialize(rawInput);
337
- var isDone = false;
338
- var unsub = client.request({
339
- type: type,
340
- path: path,
341
- input: input,
342
- id: id
343
- }, {
344
- onNext: function onNext(result) {
345
- if (isDone) {
346
- return;
347
- }
348
-
349
- if ('data' in result) {
350
- var data = rt.transformer.deserialize(result.data);
351
- prev({
352
- type: 'data',
353
- data: data
354
- });
355
- } else {
356
- prev(result);
357
- }
358
-
359
- if (op.type !== 'subscription') {
360
- // if it isn't a subscription we don't care about next response
322
+ var op = _ref2.op;
323
+ return observable.observable(function (observer) {
324
+ var type = op.type,
325
+ input = op.input,
326
+ path = op.path,
327
+ id = op.id,
328
+ context = op.context;
329
+ var isDone = false;
330
+ var unsub = client.request({
331
+ type: type,
332
+ path: path,
333
+ input: input,
334
+ id: id,
335
+ context: context
336
+ }, {
337
+ error: function error(err) {
361
338
  isDone = true;
339
+ observer.error(err);
362
340
  unsub();
341
+ },
342
+ complete: function complete() {
343
+ if (!isDone) {
344
+ isDone = true;
345
+ observer.error(TRPCClientError.TRPCClientError.from(new TRPCSubscriptionEndedError('Operation ended prematurely')));
346
+ } else {
347
+ observer.complete();
348
+ }
349
+ },
350
+ next: function next(result) {
351
+ observer.next(result);
352
+
353
+ if (op.type !== 'subscription') {
354
+ // if it isn't a subscription we don't care about next response
355
+ isDone = true;
356
+ unsub();
357
+ observer.complete();
358
+ }
363
359
  }
364
- },
365
- onError: function onError(err) {
366
- if (isDone) {
367
- return;
368
- }
369
-
370
- prev(err instanceof Error ? err : TRPCClientError.TRPCClientError.from(_objectSpread(_objectSpread({}, err), {}, {
371
- error: rt.transformer.deserialize(err.error)
372
- })));
373
- },
374
- onDone: function onDone() {
375
- if (isDone) {
376
- return;
377
- }
378
-
379
- var result = new TRPCSubscriptionEndedError('Operation ended prematurely');
380
- prev(TRPCClientError.TRPCClientError.from(result, {
381
- isDone: true
382
- }));
360
+ });
361
+ return function () {
383
362
  isDone = true;
384
- }
385
- });
386
- onDestroy(function () {
387
- isDone = true;
388
- unsub();
363
+ unsub();
364
+ };
389
365
  });
390
366
  };
391
367
  };
@@ -1,10 +1,11 @@
1
- import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';
2
1
  import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';
3
2
  import _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';
4
3
  import _inherits from '@babel/runtime/helpers/esm/inherits';
5
4
  import _createSuper from '@babel/runtime/helpers/esm/createSuper';
6
5
  import _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';
7
- import { T as TRPCClientError } from '../../../dist/TRPCClientError-09b8a26b.esm.js';
6
+ import { o as observable } from '../../../dist/observable-01534ea8.esm.js';
7
+ import { T as TRPCClientError } from '../../../dist/TRPCClientError-e1da1ef0.esm.js';
8
+ import '@babel/runtime/helpers/objectSpread2';
8
9
  import '@babel/runtime/helpers/createClass';
9
10
 
10
11
  /* istanbul ignore next */
@@ -144,24 +145,19 @@ function createWSClient(opts) {
144
145
  }
145
146
  };
146
147
 
147
- var handleIncomingResponse = function handleIncomingResponse(res) {
148
- var _req$callbacks$onNext, _req$callbacks2;
148
+ var handleIncomingResponse = function handleIncomingResponse(data) {
149
+ var _req$callbacks$next, _req$callbacks;
149
150
 
150
- var req = res.id !== null && pendingRequests[res.id];
151
+ var req = data.id !== null && pendingRequests[data.id];
151
152
 
152
153
  if (!req) {
153
154
  // do something?
154
155
  return;
155
156
  }
156
157
 
157
- if ('error' in res) {
158
- var _req$callbacks$onErro, _req$callbacks;
159
-
160
- (_req$callbacks$onErro = (_req$callbacks = req.callbacks).onError) === null || _req$callbacks$onErro === void 0 ? void 0 : _req$callbacks$onErro.call(_req$callbacks, res);
161
- return;
162
- }
163
-
164
- (_req$callbacks$onNext = (_req$callbacks2 = req.callbacks).onNext) === null || _req$callbacks$onNext === void 0 ? void 0 : _req$callbacks$onNext.call(_req$callbacks2, res.result);
158
+ (_req$callbacks$next = (_req$callbacks = req.callbacks).next) === null || _req$callbacks$next === void 0 ? void 0 : _req$callbacks$next.call(_req$callbacks, {
159
+ data: data
160
+ });
165
161
 
166
162
  if (req.ws !== activeConnection && conn === activeConnection) {
167
163
  var oldWs = req.ws; // gracefully replace old connection with this
@@ -170,10 +166,8 @@ function createWSClient(opts) {
170
166
  closeIfNoPending(oldWs);
171
167
  }
172
168
 
173
- if (res.result.type === 'stopped' && conn === activeConnection) {
174
- var _req$callbacks$onDone, _req$callbacks3;
175
-
176
- (_req$callbacks$onDone = (_req$callbacks3 = req.callbacks).onDone) === null || _req$callbacks$onDone === void 0 ? void 0 : _req$callbacks$onDone.call(_req$callbacks3);
169
+ if ('result' in data && data.result.type === 'stopped' && conn === activeConnection) {
170
+ req.callbacks.complete();
177
171
  }
178
172
  };
179
173
 
@@ -199,7 +193,7 @@ function createWSClient(opts) {
199
193
  }
200
194
 
201
195
  for (var key in pendingRequests) {
202
- var _req$callbacks$onErro2, _req$callbacks4;
196
+ var _req$callbacks$error, _req$callbacks2;
203
197
 
204
198
  var req = pendingRequests[key];
205
199
 
@@ -207,13 +201,13 @@ function createWSClient(opts) {
207
201
  continue;
208
202
  }
209
203
 
210
- (_req$callbacks$onErro2 = (_req$callbacks4 = req.callbacks).onError) === null || _req$callbacks$onErro2 === void 0 ? void 0 : _req$callbacks$onErro2.call(_req$callbacks4, TRPCClientError.from(new TRPCWebSocketClosedError('WebSocket closed prematurely')));
204
+ (_req$callbacks$error = (_req$callbacks2 = req.callbacks).error) === null || _req$callbacks$error === void 0 ? void 0 : _req$callbacks$error.call(_req$callbacks2, TRPCClientError.from(new TRPCWebSocketClosedError('WebSocket closed prematurely')));
211
205
 
212
206
  if (req.type !== 'subscription') {
213
- var _req$callbacks$onDone2, _req$callbacks5;
207
+ var _req$callbacks$comple, _req$callbacks3;
214
208
 
215
209
  delete pendingRequests[key];
216
- (_req$callbacks$onDone2 = (_req$callbacks5 = req.callbacks).onDone) === null || _req$callbacks$onDone2 === void 0 ? void 0 : _req$callbacks$onDone2.call(_req$callbacks5);
210
+ (_req$callbacks$comple = (_req$callbacks3 = req.callbacks).complete) === null || _req$callbacks$comple === void 0 ? void 0 : _req$callbacks$comple.call(_req$callbacks3);
217
211
  } else if (state !== 'closed') {
218
212
  // request restart of sub with next connection
219
213
  resumeSubscriptionOnReconnect(req);
@@ -247,14 +241,14 @@ function createWSClient(opts) {
247
241
  outgoing.push(envelope);
248
242
  dispatch();
249
243
  return function () {
250
- var _pendingRequests$id, _callbacks$onDone;
244
+ var _pendingRequests$id, _callbacks$complete;
251
245
 
252
246
  var callbacks = (_pendingRequests$id = pendingRequests[id]) === null || _pendingRequests$id === void 0 ? void 0 : _pendingRequests$id.callbacks;
253
247
  delete pendingRequests[id];
254
248
  outgoing = outgoing.filter(function (msg) {
255
249
  return msg.id !== id;
256
250
  });
257
- callbacks === null || callbacks === void 0 ? void 0 : (_callbacks$onDone = callbacks.onDone) === null || _callbacks$onDone === void 0 ? void 0 : _callbacks$onDone.call(callbacks);
251
+ callbacks === null || callbacks === void 0 ? void 0 : (_callbacks$complete = callbacks.complete) === null || _callbacks$complete === void 0 ? void 0 : _callbacks$complete.call(callbacks);
258
252
 
259
253
  if (op.type === 'subscription') {
260
254
  outgoing.push({
@@ -318,70 +312,52 @@ var TRPCSubscriptionEndedError = /*#__PURE__*/function (_Error2) {
318
312
  }( /*#__PURE__*/_wrapNativeSuper(Error));
319
313
 
320
314
  function wsLink(opts) {
321
- // initialized config
322
- return function (rt) {
315
+ return function () {
323
316
  var client = opts.client;
324
317
  return function (_ref2) {
325
- var op = _ref2.op,
326
- prev = _ref2.prev,
327
- onDestroy = _ref2.onDestroy;
328
- var type = op.type,
329
- rawInput = op.input,
330
- path = op.path,
331
- id = op.id;
332
- var input = rt.transformer.serialize(rawInput);
333
- var isDone = false;
334
- var unsub = client.request({
335
- type: type,
336
- path: path,
337
- input: input,
338
- id: id
339
- }, {
340
- onNext: function onNext(result) {
341
- if (isDone) {
342
- return;
343
- }
344
-
345
- if ('data' in result) {
346
- var data = rt.transformer.deserialize(result.data);
347
- prev({
348
- type: 'data',
349
- data: data
350
- });
351
- } else {
352
- prev(result);
353
- }
354
-
355
- if (op.type !== 'subscription') {
356
- // if it isn't a subscription we don't care about next response
318
+ var op = _ref2.op;
319
+ return observable(function (observer) {
320
+ var type = op.type,
321
+ input = op.input,
322
+ path = op.path,
323
+ id = op.id,
324
+ context = op.context;
325
+ var isDone = false;
326
+ var unsub = client.request({
327
+ type: type,
328
+ path: path,
329
+ input: input,
330
+ id: id,
331
+ context: context
332
+ }, {
333
+ error: function error(err) {
357
334
  isDone = true;
335
+ observer.error(err);
358
336
  unsub();
337
+ },
338
+ complete: function complete() {
339
+ if (!isDone) {
340
+ isDone = true;
341
+ observer.error(TRPCClientError.from(new TRPCSubscriptionEndedError('Operation ended prematurely')));
342
+ } else {
343
+ observer.complete();
344
+ }
345
+ },
346
+ next: function next(result) {
347
+ observer.next(result);
348
+
349
+ if (op.type !== 'subscription') {
350
+ // if it isn't a subscription we don't care about next response
351
+ isDone = true;
352
+ unsub();
353
+ observer.complete();
354
+ }
359
355
  }
360
- },
361
- onError: function onError(err) {
362
- if (isDone) {
363
- return;
364
- }
365
-
366
- prev(err instanceof Error ? err : TRPCClientError.from(_objectSpread(_objectSpread({}, err), {}, {
367
- error: rt.transformer.deserialize(err.error)
368
- })));
369
- },
370
- onDone: function onDone() {
371
- if (isDone) {
372
- return;
373
- }
374
-
375
- var result = new TRPCSubscriptionEndedError('Operation ended prematurely');
376
- prev(TRPCClientError.from(result, {
377
- isDone: true
378
- }));
356
+ });
357
+ return function () {
379
358
  isDone = true;
380
- }
381
- });
382
- onDestroy(function () {
383
- isDone = true;
384
- unsub();
359
+ unsub();
360
+ };
385
361
  });
386
362
  };
387
363
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/client",
3
- "version": "9.16.0",
3
+ "version": "10.0.0-alpha.1",
4
4
  "description": "tRPC Client lib",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -13,11 +13,14 @@
13
13
  "preconstruct": {
14
14
  "entrypoints": [
15
15
  "index.ts",
16
- "links/httpLink.ts",
17
16
  "links/httpBatchLink.ts",
18
- "links/splitLink.ts",
17
+ "links/httpLink.ts",
19
18
  "links/loggerLink.ts",
20
- "links/wsLink.ts"
19
+ "links/splitLink.ts",
20
+ "links/transformerLink.ts",
21
+ "links/wsLink.ts",
22
+ "rx/index.ts",
23
+ "rx/operators/index.ts"
21
24
  ]
22
25
  },
23
26
  "scripts": {},
@@ -28,19 +31,20 @@
28
31
  "README.md",
29
32
  "dist",
30
33
  "links",
31
- "src"
34
+ "src",
35
+ "rx"
32
36
  ],
33
37
  "dependencies": {
34
38
  "@babel/runtime": "^7.9.0"
35
39
  },
36
40
  "peerDependencies": {
37
- "@trpc/server": "9.16.0"
41
+ "@trpc/server": "10.0.0-alpha.1"
38
42
  },
39
43
  "devDependencies": {
40
- "@trpc/server": "9.16.0"
44
+ "@trpc/server": "10.0.0-alpha.1"
41
45
  },
42
46
  "publishConfig": {
43
47
  "access": "public"
44
48
  },
45
- "gitHead": "6829b38c6902b761a645a1cac0f571d5fb522e7c"
49
+ "gitHead": "8e87f854e048f7e45d6c9b5c519300be3ca3a1a5"
46
50
  }
@@ -0,0 +1 @@
1
+ export * from "../../dist/declarations/src/rx/index";
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var observable = require('../../dist/observable-9aad8c3e.cjs.dev.js');
6
+
7
+
8
+
9
+ exports.observable = observable.observable;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./trpc-client-rx.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./trpc-client-rx.cjs.dev.js");
7
+ }
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var observable = require('../../dist/observable-ccb54234.cjs.prod.js');
6
+
7
+
8
+
9
+ exports.observable = observable.observable;
@@ -0,0 +1 @@
1
+ export { o as observable } from '../../dist/observable-01534ea8.esm.js';
@@ -0,0 +1 @@
1
+ export * from "../../../dist/declarations/src/rx/operators/index";
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var share = require('../../../dist/share-f2ac9332.cjs.dev.js');
6
+ var tap = require('../../../dist/tap-2d565250.cjs.dev.js');
7
+ require('@babel/runtime/helpers/createForOfIteratorHelper');
8
+
9
+ function map(project) {
10
+ return function (originalObserver) {
11
+ return {
12
+ subscribe: function subscribe(observer) {
13
+ var index = 0;
14
+ var subscription = originalObserver.subscribe({
15
+ next: function next(value) {
16
+ var _observer$next;
17
+
18
+ (_observer$next = observer.next) === null || _observer$next === void 0 ? void 0 : _observer$next.call(observer, project(value, index++));
19
+ },
20
+ error: function error(_error) {
21
+ var _observer$error;
22
+
23
+ (_observer$error = observer.error) === null || _observer$error === void 0 ? void 0 : _observer$error.call(observer, _error);
24
+ },
25
+ complete: function complete() {
26
+ var _observer$complete;
27
+
28
+ (_observer$complete = observer.complete) === null || _observer$complete === void 0 ? void 0 : _observer$complete.call(observer);
29
+ }
30
+ });
31
+ return subscription;
32
+ }
33
+ };
34
+ };
35
+ }
36
+
37
+ exports.share = share.share;
38
+ exports.tap = tap.tap;
39
+ exports.map = map;
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ if (process.env.NODE_ENV === "production") {
4
+ module.exports = require("./trpc-client-rx-operators.cjs.prod.js");
5
+ } else {
6
+ module.exports = require("./trpc-client-rx-operators.cjs.dev.js");
7
+ }
@@ -0,0 +1,39 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var share = require('../../../dist/share-5a8c2543.cjs.prod.js');
6
+ var tap = require('../../../dist/tap-d907998d.cjs.prod.js');
7
+ require('@babel/runtime/helpers/createForOfIteratorHelper');
8
+
9
+ function map(project) {
10
+ return function (originalObserver) {
11
+ return {
12
+ subscribe: function subscribe(observer) {
13
+ var index = 0;
14
+ var subscription = originalObserver.subscribe({
15
+ next: function next(value) {
16
+ var _observer$next;
17
+
18
+ (_observer$next = observer.next) === null || _observer$next === void 0 ? void 0 : _observer$next.call(observer, project(value, index++));
19
+ },
20
+ error: function error(_error) {
21
+ var _observer$error;
22
+
23
+ (_observer$error = observer.error) === null || _observer$error === void 0 ? void 0 : _observer$error.call(observer, _error);
24
+ },
25
+ complete: function complete() {
26
+ var _observer$complete;
27
+
28
+ (_observer$complete = observer.complete) === null || _observer$complete === void 0 ? void 0 : _observer$complete.call(observer);
29
+ }
30
+ });
31
+ return subscription;
32
+ }
33
+ };
34
+ };
35
+ }
36
+
37
+ exports.share = share.share;
38
+ exports.tap = tap.tap;
39
+ exports.map = map;
@@ -0,0 +1,33 @@
1
+ export { s as share } from '../../../dist/share-ca585761.esm.js';
2
+ export { t as tap } from '../../../dist/tap-606957cb.esm.js';
3
+ import '@babel/runtime/helpers/createForOfIteratorHelper';
4
+
5
+ function map(project) {
6
+ return function (originalObserver) {
7
+ return {
8
+ subscribe: function subscribe(observer) {
9
+ var index = 0;
10
+ var subscription = originalObserver.subscribe({
11
+ next: function next(value) {
12
+ var _observer$next;
13
+
14
+ (_observer$next = observer.next) === null || _observer$next === void 0 ? void 0 : _observer$next.call(observer, project(value, index++));
15
+ },
16
+ error: function error(_error) {
17
+ var _observer$error;
18
+
19
+ (_observer$error = observer.error) === null || _observer$error === void 0 ? void 0 : _observer$error.call(observer, _error);
20
+ },
21
+ complete: function complete() {
22
+ var _observer$complete;
23
+
24
+ (_observer$complete = observer.complete) === null || _observer$complete === void 0 ? void 0 : _observer$complete.call(observer);
25
+ }
26
+ });
27
+ return subscription;
28
+ }
29
+ };
30
+ };
31
+ }
32
+
33
+ export { map };
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "dist/trpc-client-rx-operators.cjs.js",
3
+ "module": "dist/trpc-client-rx-operators.esm.js"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "main": "dist/trpc-client-rx.cjs.js",
3
+ "module": "dist/trpc-client-rx.esm.js"
4
+ }