@trpc/client 9.17.0 → 10.0.0-alpha.0

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 (152) 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 -14
  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/package.json +4 -0
  85. package/links/wsLink/dist/trpc-client-links-wsLink.cjs.dev.js +57 -82
  86. package/links/wsLink/dist/trpc-client-links-wsLink.cjs.prod.js +57 -82
  87. package/links/wsLink/dist/trpc-client-links-wsLink.esm.js +57 -82
  88. package/package.json +12 -8
  89. package/rx/dist/trpc-client-rx.cjs.d.ts +1 -0
  90. package/rx/dist/trpc-client-rx.cjs.dev.js +9 -0
  91. package/rx/dist/trpc-client-rx.cjs.js +7 -0
  92. package/rx/dist/trpc-client-rx.cjs.prod.js +9 -0
  93. package/rx/dist/trpc-client-rx.esm.js +1 -0
  94. package/rx/operators/dist/trpc-client-rx-operators.cjs.d.ts +1 -0
  95. package/rx/operators/dist/trpc-client-rx-operators.cjs.dev.js +39 -0
  96. package/rx/operators/dist/trpc-client-rx-operators.cjs.js +7 -0
  97. package/rx/operators/dist/trpc-client-rx-operators.cjs.prod.js +39 -0
  98. package/rx/operators/dist/trpc-client-rx-operators.esm.js +33 -0
  99. package/rx/operators/package.json +4 -0
  100. package/rx/package.json +4 -0
  101. package/src/TRPCClientError.ts +17 -21
  102. package/src/createTRPCClient.ts +4 -3
  103. package/src/index.ts +1 -1
  104. package/src/internals/TRPCClient.ts +80 -88
  105. package/src/internals/dataLoader.ts +1 -1
  106. package/src/internals/transformRPCResponse.ts +2 -2
  107. package/src/links/dedupeLink.test.ts +134 -0
  108. package/src/links/dedupeLink.ts +53 -0
  109. package/src/links/httpBatchLink.ts +37 -37
  110. package/src/links/httpLink.ts +26 -37
  111. package/src/{internals/httpRequest.ts → links/httpUtils.ts} +30 -21
  112. package/src/links/internals/createChain.test.ts +132 -0
  113. package/src/links/internals/createChain.ts +31 -0
  114. package/src/links/internals/transformOperationResult.ts +25 -0
  115. package/src/links/loggerLink.ts +40 -22
  116. package/src/links/retryLink.ts +45 -14
  117. package/src/links/splitLink.test.ts +56 -0
  118. package/src/links/splitLink.ts +23 -38
  119. package/src/links/transformerLink.ts +70 -0
  120. package/src/links/{core.ts → types.ts} +40 -46
  121. package/src/links/wsLink.ts +55 -77
  122. package/src/rx/index.ts +2 -0
  123. package/src/rx/observable.test.ts +83 -0
  124. package/src/rx/observable.ts +70 -0
  125. package/src/rx/operators/index.ts +3 -0
  126. package/src/rx/operators/map.test.ts +92 -0
  127. package/src/rx/operators/map.ts +25 -0
  128. package/src/rx/operators/share.test.ts +60 -0
  129. package/src/rx/operators/share.ts +67 -0
  130. package/src/rx/operators/tap.ts +26 -0
  131. package/src/rx/types.ts +69 -0
  132. package/src/rx/util/identity.ts +3 -0
  133. package/src/rx/util/observableToPromise.ts +49 -0
  134. package/src/rx/util/pipe.ts +22 -0
  135. package/dist/declarations/src/internals/TRPCAbortError.d.ts +0 -4
  136. package/dist/declarations/src/internals/TRPCAbortError.d.ts.map +0 -1
  137. package/dist/declarations/src/internals/executeChain.d.ts +0 -9
  138. package/dist/declarations/src/internals/executeChain.d.ts.map +0 -1
  139. package/dist/declarations/src/internals/httpRequest.d.ts +0 -14
  140. package/dist/declarations/src/internals/httpRequest.d.ts.map +0 -1
  141. package/dist/declarations/src/internals/observable.d.ts +0 -18
  142. package/dist/declarations/src/internals/observable.d.ts.map +0 -1
  143. package/dist/declarations/src/internals/transformRPCResponse.d.ts +0 -15
  144. package/dist/declarations/src/internals/transformRPCResponse.d.ts.map +0 -1
  145. package/dist/declarations/src/links/core.d.ts +0 -45
  146. package/dist/declarations/src/links/core.d.ts.map +0 -1
  147. package/dist/httpRequest-672ff1f0.esm.js +0 -128
  148. package/dist/httpRequest-7bfaf300.cjs.dev.js +0 -132
  149. package/dist/httpRequest-8c422e7a.cjs.prod.js +0 -132
  150. package/src/internals/TRPCAbortError.ts +0 -7
  151. package/src/internals/executeChain.ts +0 -67
  152. package/src/internals/observable.ts +0 -89
@@ -4,166 +4,18 @@ 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 _objectSpread = require('@babel/runtime/helpers/objectSpread2');
8
- var _createForOfIteratorHelper = require('@babel/runtime/helpers/createForOfIteratorHelper');
9
- var httpRequest = require('./httpRequest-7bfaf300.cjs.dev.js');
10
7
  var links_httpBatchLink_dist_trpcClientLinksHttpBatchLink = require('../links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.dev.js');
11
- var TRPCClientError = require('./TRPCClientError-bfee2bf5.cjs.dev.js');
12
- require('@babel/runtime/helpers/assertThisInitialized');
13
- require('@babel/runtime/helpers/inherits');
14
- require('@babel/runtime/helpers/createSuper');
15
- require('@babel/runtime/helpers/wrapNativeSuper');
16
-
17
- function observable() {
18
- var listeners = [];
19
- var value = null;
20
- return {
21
- subscribe: function subscribe(callbacks) {
22
- var listener = {
23
- callbacks: callbacks,
24
- unsubscribe: function unsubscribe() {
25
- var index = listeners.indexOf(listener);
26
-
27
- if (index !== -1) {
28
- var _listener$callbacks$o, _listener$callbacks;
29
-
30
- listeners.splice(index, 1);
31
- (_listener$callbacks$o = (_listener$callbacks = listener.callbacks).onDone) === null || _listener$callbacks$o === void 0 ? void 0 : _listener$callbacks$o.call(_listener$callbacks);
32
- }
33
- }
34
- };
35
- listeners.push(listener);
36
- return function () {
37
- listener.unsubscribe();
38
- };
39
- },
40
- next: function next(newValue) {
41
- var oldValue = value;
42
- value = newValue;
43
-
44
- if (oldValue !== newValue) {
45
- var _iterator = _createForOfIteratorHelper(listeners),
46
- _step;
47
-
48
- try {
49
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
50
- var _listener$callbacks$o2, _listener$callbacks2;
51
-
52
- var listener = _step.value;
53
- (_listener$callbacks$o2 = (_listener$callbacks2 = listener.callbacks).onNext) === null || _listener$callbacks$o2 === void 0 ? void 0 : _listener$callbacks$o2.call(_listener$callbacks2, newValue);
54
- }
55
- } catch (err) {
56
- _iterator.e(err);
57
- } finally {
58
- _iterator.f();
59
- }
60
- }
61
- },
62
- done: function done() {
63
- while (listeners.length) {
64
- var _listener$callbacks$o3, _listener$callbacks3;
65
-
66
- var listener = listeners.pop();
67
- listener === null || listener === void 0 ? void 0 : (_listener$callbacks$o3 = (_listener$callbacks3 = listener.callbacks).onDone) === null || _listener$callbacks$o3 === void 0 ? void 0 : _listener$callbacks$o3.call(_listener$callbacks3);
68
- listener === null || listener === void 0 ? void 0 : listener.unsubscribe();
69
- }
70
- },
71
- error: function (_error) {
72
- function error(_x) {
73
- return _error.apply(this, arguments);
74
- }
75
-
76
- error.toString = function () {
77
- return _error.toString();
78
- };
79
-
80
- return error;
81
- }(function (error) {
82
- var _iterator2 = _createForOfIteratorHelper(listeners),
83
- _step2;
84
-
85
- try {
86
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
87
- var _listener$callbacks$o4, _listener$callbacks4;
88
-
89
- var listener = _step2.value;
90
- (_listener$callbacks$o4 = (_listener$callbacks4 = listener.callbacks).onError) === null || _listener$callbacks$o4 === void 0 ? void 0 : _listener$callbacks$o4.call(_listener$callbacks4, error);
91
- }
92
- } catch (err) {
93
- _iterator2.e(err);
94
- } finally {
95
- _iterator2.f();
96
- }
97
- })
98
- };
99
- }
100
- function observableSubject(initialValue) {
101
- var $obs = observable();
102
- var value = initialValue;
103
- $obs.next(initialValue);
104
- return _objectSpread(_objectSpread({}, $obs), {}, {
105
- next: function next(v) {
106
- value = v;
107
- $obs.next(v);
108
- },
109
- get: function get() {
110
- return value;
111
- }
112
- });
113
- }
114
-
115
- function executeChain(opts) {
116
- var $result = observableSubject(null);
117
-
118
- var updateResult = function updateResult(result) {
119
- if (result instanceof Error) {
120
- $result.error(result);
121
-
122
- if (result.isDone) {
123
- $result.done();
124
- }
125
- } else {
126
- $result.next(result);
127
- }
128
- };
129
-
130
- function walk(_ref) {
131
- var index = _ref.index,
132
- op = _ref.op,
133
- stack = _ref.stack;
134
- var link = opts.links[index];
135
- var prev = index === 0 ? function (value) {
136
- return updateResult(value);
137
- } : stack[index - 1];
138
- link({
139
- op: op,
140
- prev: prev,
141
- next: function next(op, prevOp) {
142
- var prevStack = stack.slice();
143
- prevStack[index] = prevOp;
144
- walk({
145
- index: index + 1,
146
- op: op,
147
- stack: prevStack
148
- });
149
- },
150
- onDestroy: function onDestroy(callback) {
151
- $result.subscribe({
152
- onDone: function onDone() {
153
- callback();
154
- }
155
- });
156
- }
157
- });
158
- }
159
-
160
- walk({
161
- index: 0,
162
- op: opts.op,
163
- stack: []
164
- });
165
- return $result;
166
- }
8
+ var createChain = require('./createChain-93a38e1c.cjs.dev.js');
9
+ var TRPCClientError = require('./TRPCClientError-a5312a5f.cjs.dev.js');
10
+ var share = require('./share-f2ac9332.cjs.dev.js');
11
+ var _assertThisInitialized = require('@babel/runtime/helpers/assertThisInitialized');
12
+ var _inherits = require('@babel/runtime/helpers/inherits');
13
+ var _createSuper = require('@babel/runtime/helpers/createSuper');
14
+ var _wrapNativeSuper = require('@babel/runtime/helpers/wrapNativeSuper');
15
+ require('@babel/runtime/helpers/createForOfIteratorHelper');
16
+ require('./observable-9aad8c3e.cjs.dev.js');
17
+ require('./httpUtils-a1426e14.cjs.dev.js');
18
+ require('@babel/runtime/helpers/objectSpread2');
167
19
 
168
20
  function getWindow() {
169
21
  if (typeof window !== 'undefined') {
@@ -191,6 +43,87 @@ function getFetch(f) {
191
43
  throw new Error('No fetch implementation found');
192
44
  }
193
45
 
46
+ /** @internal */
47
+ function transformOperationResult(result) {
48
+ var context = result.context;
49
+
50
+ if ('error' in result.data) {
51
+ var error = TRPCClientError.TRPCClientError.from(result.data);
52
+ return {
53
+ ok: false,
54
+ error: error,
55
+ context: context
56
+ };
57
+ }
58
+
59
+ var data = result.data.result.data;
60
+ return {
61
+ ok: true,
62
+ data: data,
63
+ context: context
64
+ };
65
+ }
66
+
67
+ var ObservableAbortError = /*#__PURE__*/function (_Error) {
68
+ _inherits(ObservableAbortError, _Error);
69
+
70
+ var _super = /*#__PURE__*/_createSuper(ObservableAbortError);
71
+
72
+ function ObservableAbortError(message) {
73
+ var _this;
74
+
75
+ _classCallCheck(this, ObservableAbortError);
76
+
77
+ _this = _super.call(this, message);
78
+ _this.name = 'ObservableAbortError';
79
+ Object.setPrototypeOf(_assertThisInitialized(_this), ObservableAbortError.prototype);
80
+ return _this;
81
+ }
82
+
83
+ return ObservableAbortError;
84
+ }( /*#__PURE__*/_wrapNativeSuper(Error));
85
+ /** @internal */
86
+
87
+ function observableToPromise(observable) {
88
+ var abort;
89
+ var promise = new Promise(function (resolve, reject) {
90
+ var isDone = false;
91
+
92
+ function onDone() {
93
+ if (isDone) {
94
+ return;
95
+ }
96
+
97
+ isDone = true;
98
+ reject(new ObservableAbortError('This operation was cancelled.'));
99
+ obs$.unsubscribe();
100
+ }
101
+
102
+ var obs$ = observable.subscribe({
103
+ next: function next(data) {
104
+ isDone = true;
105
+ resolve(data);
106
+ onDone();
107
+ },
108
+ error: function error(data) {
109
+ isDone = true;
110
+ reject(data);
111
+ onDone();
112
+ },
113
+ complete: function complete() {
114
+ isDone = true;
115
+ onDone();
116
+ }
117
+ });
118
+ abort = onDone;
119
+ });
120
+ return {
121
+ promise: promise,
122
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
123
+ abort: abort
124
+ };
125
+ }
126
+
194
127
  var idCounter = 0;
195
128
 
196
129
  function getRequestId() {
@@ -205,17 +138,6 @@ var TRPCClient = /*#__PURE__*/function () {
205
138
 
206
139
  this.links = void 0;
207
140
  this.runtime = void 0;
208
- var transformer = opts.transformer ? 'input' in opts.transformer ? {
209
- serialize: opts.transformer.input.serialize,
210
- deserialize: opts.transformer.output.deserialize
211
- } : opts.transformer : {
212
- serialize: function serialize(data) {
213
- return data;
214
- },
215
- deserialize: function deserialize(data) {
216
- return data;
217
- }
218
- };
219
141
 
220
142
  var _fetch = getFetch(opts === null || opts === void 0 ? void 0 : opts.fetch);
221
143
 
@@ -235,7 +157,6 @@ var TRPCClient = /*#__PURE__*/function () {
235
157
  }
236
158
 
237
159
  this.runtime = {
238
- transformer: transformer,
239
160
  AbortController: AC,
240
161
  fetch: _fetch,
241
162
  headers: getHeadersFn()
@@ -260,7 +181,7 @@ var TRPCClient = /*#__PURE__*/function () {
260
181
  path = _ref.path,
261
182
  _ref$context = _ref.context,
262
183
  context = _ref$context === void 0 ? {} : _ref$context;
263
- var $result = executeChain({
184
+ var chain$ = createChain.createChain({
264
185
  links: this.links,
265
186
  op: {
266
187
  id: getRequestId(),
@@ -270,45 +191,33 @@ var TRPCClient = /*#__PURE__*/function () {
270
191
  context: context
271
192
  }
272
193
  });
273
- return $result;
194
+ return chain$.pipe(share.share());
274
195
  }
275
196
  }, {
276
197
  key: "requestAsPromise",
277
198
  value: function requestAsPromise(opts) {
278
- var $result = this.$request(opts);
279
- var promise = new Promise(function (resolve, reject) {
280
- var res = $result.get();
281
-
282
- if ((res === null || res === void 0 ? void 0 : res.type) === 'data') {
283
- resolve(res.data);
284
- $result.done();
285
- return;
286
- }
199
+ var req$ = this.$request(opts);
200
+
201
+ var _observableToPromise = observableToPromise(req$),
202
+ promise = _observableToPromise.promise,
203
+ abort = _observableToPromise.abort;
204
+
205
+ var cancellablePromise = new Promise(function (resolve, reject) {
206
+ promise.then(function (result) {
207
+ var transformed = transformOperationResult(result);
287
208
 
288
- $result.subscribe({
289
- onNext: function onNext(result) {
290
- if ((result === null || result === void 0 ? void 0 : result.type) !== 'data') {
291
- return;
292
- }
293
-
294
- resolve(result.data);
295
- $result.done();
296
- },
297
- onError: function onError(err) {
298
- reject(err);
299
- $result.done();
300
- },
301
- onDone: function onDone() {
302
- reject(TRPCClientError.TRPCClientError.from(new httpRequest.TRPCAbortError()));
209
+ if (transformed.ok) {
210
+ resolve(transformed.data);
211
+ return;
303
212
  }
213
+
214
+ reject(transformed.error);
215
+ }).catch(function (err) {
216
+ reject(TRPCClientError.TRPCClientError.from(err));
304
217
  });
305
218
  });
306
-
307
- promise.cancel = function () {
308
- $result.done();
309
- };
310
-
311
- return promise;
219
+ cancellablePromise.cancel = abort;
220
+ return cancellablePromise;
312
221
  }
313
222
  }, {
314
223
  key: "query",
@@ -339,29 +248,41 @@ var TRPCClient = /*#__PURE__*/function () {
339
248
  }, {
340
249
  key: "subscription",
341
250
  value: function subscription(path, input, opts) {
342
- var $res = this.$request({
251
+ var observable$ = this.$request({
343
252
  type: 'subscription',
344
253
  path: path,
345
254
  input: input,
346
255
  context: opts.context
347
256
  });
348
- $res.subscribe({
349
- onNext: function onNext(output) {
350
- if (output) {
351
- var _opts$onNext;
352
-
353
- (_opts$onNext = opts.onNext) === null || _opts$onNext === void 0 ? void 0 : _opts$onNext.call(opts, output);
257
+ var observer = observable$.subscribe({
258
+ next: function next(result) {
259
+ var _opts$next;
260
+
261
+ if ('error' in result.data) {
262
+ var _opts$error;
263
+
264
+ var err = TRPCClientError.TRPCClientError.from(result.data, {
265
+ meta: result.context
266
+ });
267
+ (_opts$error = opts.error) === null || _opts$error === void 0 ? void 0 : _opts$error.call(opts, err);
268
+ return;
354
269
  }
270
+
271
+ (_opts$next = opts.next) === null || _opts$next === void 0 ? void 0 : _opts$next.call(opts, result.data.result);
355
272
  },
356
- onError: function onError(err) {
357
- var _opts$onError;
273
+ error: function error(err) {
274
+ var _opts$error2;
358
275
 
359
- (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, err);
276
+ (_opts$error2 = opts.error) === null || _opts$error2 === void 0 ? void 0 : _opts$error2.call(opts, err);
360
277
  },
361
- onDone: opts.onDone
278
+ complete: function complete() {
279
+ var _opts$complete;
280
+
281
+ (_opts$complete = opts.complete) === null || _opts$complete === void 0 ? void 0 : _opts$complete.call(opts);
282
+ }
362
283
  });
363
284
  return function () {
364
- $res.done();
285
+ observer.unsubscribe();
365
286
  };
366
287
  }
367
288
  }]);