@trpc/client 10.0.0-alpha.4 → 10.0.0-alpha.42

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 (174) hide show
  1. package/README.md +58 -1
  2. package/dist/TRPCClientError.d.ts +3 -11
  3. package/dist/TRPCClientError.d.ts.map +1 -1
  4. package/dist/createTRPCClient.d.ts +2 -3
  5. package/dist/createTRPCClient.d.ts.map +1 -1
  6. package/dist/createTRPCClientProxy.d.ts +31 -0
  7. package/dist/createTRPCClientProxy.d.ts.map +1 -0
  8. package/dist/{httpUtils-c09d7b79.mjs → httpUtils-089853f6.mjs} +38 -30
  9. package/dist/{httpUtils-1f9e4e3c.js → httpUtils-a0169eef.js} +38 -29
  10. package/dist/index.d.ts +2 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +256 -107
  13. package/dist/index.mjs +244 -99
  14. package/dist/internals/TRPCClient.d.ts +21 -18
  15. package/dist/internals/TRPCClient.d.ts.map +1 -1
  16. package/dist/internals/dataLoader.d.ts +7 -4
  17. package/dist/internals/dataLoader.d.ts.map +1 -1
  18. package/dist/links/dedupeLink.d.ts.map +1 -1
  19. package/dist/links/httpBatchLink.d.ts +5 -2
  20. package/dist/links/httpBatchLink.d.ts.map +1 -1
  21. package/dist/links/httpBatchLink.js +197 -69
  22. package/dist/links/httpBatchLink.mjs +197 -69
  23. package/dist/links/httpLink.d.ts +1 -1
  24. package/dist/links/httpLink.d.ts.map +1 -1
  25. package/dist/links/httpLink.js +5 -5
  26. package/dist/links/httpLink.mjs +5 -5
  27. package/dist/links/index.d.ts +9 -0
  28. package/dist/links/index.d.ts.map +1 -0
  29. package/dist/links/internals/createChain.d.ts.map +1 -1
  30. package/dist/links/internals/httpUtils.d.ts +30 -0
  31. package/dist/links/internals/httpUtils.d.ts.map +1 -0
  32. package/dist/links/internals/transformOperationResult.d.ts +17 -3
  33. package/dist/links/internals/transformOperationResult.d.ts.map +1 -1
  34. package/dist/links/loggerLink.d.ts.map +1 -1
  35. package/dist/links/loggerLink.js +2 -3
  36. package/dist/links/loggerLink.mjs +1 -2
  37. package/dist/links/retryLink.d.ts.map +1 -1
  38. package/dist/links/splitLink.d.ts +1 -1
  39. package/dist/links/splitLink.d.ts.map +1 -1
  40. package/dist/links/splitLink.js +3 -25
  41. package/dist/links/splitLink.mjs +2 -28
  42. package/dist/links/types.d.ts +12 -9
  43. package/dist/links/types.d.ts.map +1 -1
  44. package/dist/links/wsLink.d.ts +5 -3
  45. package/dist/links/wsLink.d.ts.map +1 -1
  46. package/dist/links/wsLink.js +12 -376
  47. package/dist/links/wsLink.mjs +10 -369
  48. package/dist/splitLink-0202cd7b.mjs +54 -0
  49. package/dist/splitLink-23c5ce5c.js +57 -0
  50. package/dist/wsLink-27b93bd0.mjs +451 -0
  51. package/dist/wsLink-44703a83.js +467 -0
  52. package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.dev.js +4 -4
  53. package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.cjs.prod.js +4 -4
  54. package/links/httpBatchLink/dist/trpc-client-links-httpBatchLink.esm.js +4 -4
  55. package/links/httpBatchLink/index.d.ts +1 -1
  56. package/links/httpBatchLink/index.js +1 -1
  57. package/links/httpLink/dist/trpc-client-links-httpLink.cjs.dev.js +1 -1
  58. package/links/httpLink/dist/trpc-client-links-httpLink.cjs.prod.js +1 -1
  59. package/links/httpLink/dist/trpc-client-links-httpLink.esm.js +1 -1
  60. package/links/httpLink/index.d.ts +1 -1
  61. package/links/httpLink/index.js +1 -1
  62. package/links/loggerLink/index.d.ts +1 -1
  63. package/links/loggerLink/index.js +1 -1
  64. package/links/splitLink/index.d.ts +1 -1
  65. package/links/splitLink/index.js +1 -1
  66. package/links/wsLink/dist/trpc-client-links-wsLink.cjs.dev.js +3 -1
  67. package/links/wsLink/dist/trpc-client-links-wsLink.cjs.prod.js +3 -1
  68. package/links/wsLink/dist/trpc-client-links-wsLink.esm.js +3 -1
  69. package/links/wsLink/index.d.ts +1 -1
  70. package/links/wsLink/index.js +1 -1
  71. package/package.json +23 -30
  72. package/src/TRPCClientError.ts +5 -13
  73. package/src/createTRPCClient.ts +7 -3
  74. package/src/createTRPCClientProxy.ts +98 -0
  75. package/src/index.ts +2 -1
  76. package/src/internals/TRPCClient.ts +70 -42
  77. package/src/internals/dataLoader.ts +120 -45
  78. package/src/links/dedupeLink.test.ts +1 -1
  79. package/src/links/dedupeLink.ts +6 -7
  80. package/src/links/httpBatchLink.ts +64 -31
  81. package/src/links/httpLink.ts +4 -4
  82. package/src/links/index.ts +8 -0
  83. package/src/links/internals/createChain.test.ts +5 -5
  84. package/src/links/internals/createChain.ts +8 -3
  85. package/src/links/internals/httpUtils.ts +116 -0
  86. package/src/links/internals/transformOperationResult.ts +40 -12
  87. package/src/links/loggerLink.ts +1 -2
  88. package/src/links/retryLink.ts +1 -2
  89. package/src/links/splitLink.test.ts +3 -3
  90. package/src/links/splitLink.ts +5 -5
  91. package/src/links/types.ts +14 -9
  92. package/src/links/wsLink.ts +31 -16
  93. package/dist/TRPCClientError-17b117e1.mjs +0 -81
  94. package/dist/TRPCClientError-ec6bd2ca.js +0 -94
  95. package/dist/createChain-389cc116.mjs +0 -25
  96. package/dist/createChain-864dbb30.js +0 -27
  97. package/dist/internals/transformRPCResponse.d.ts +0 -15
  98. package/dist/internals/transformRPCResponse.d.ts.map +0 -1
  99. package/dist/links/httpUtils.d.ts +0 -22
  100. package/dist/links/httpUtils.d.ts.map +0 -1
  101. package/dist/links/transformerLink.d.ts +0 -4
  102. package/dist/links/transformerLink.d.ts.map +0 -1
  103. package/dist/links/transformerLink.js +0 -75
  104. package/dist/links/transformerLink.mjs +0 -67
  105. package/dist/links/transformerLink.ts.js +0 -1
  106. package/dist/observable-7e66cb56.mjs +0 -102
  107. package/dist/observable-85669100.js +0 -104
  108. package/dist/rx/index.d.ts +0 -3
  109. package/dist/rx/index.d.ts.map +0 -1
  110. package/dist/rx/index.js +0 -9
  111. package/dist/rx/index.mjs +0 -1
  112. package/dist/rx/index.ts.js +0 -1
  113. package/dist/rx/observable.d.ts +0 -4
  114. package/dist/rx/observable.d.ts.map +0 -1
  115. package/dist/rx/operators/index.d.ts +0 -4
  116. package/dist/rx/operators/index.d.ts.map +0 -1
  117. package/dist/rx/operators/index.js +0 -38
  118. package/dist/rx/operators/index.mjs +0 -32
  119. package/dist/rx/operators/index.ts.js +0 -1
  120. package/dist/rx/operators/map.d.ts +0 -3
  121. package/dist/rx/operators/map.d.ts.map +0 -1
  122. package/dist/rx/operators/share.d.ts +0 -6
  123. package/dist/rx/operators/share.d.ts.map +0 -1
  124. package/dist/rx/operators/tap.d.ts +0 -3
  125. package/dist/rx/operators/tap.d.ts.map +0 -1
  126. package/dist/rx/types.d.ts +0 -29
  127. package/dist/rx/types.d.ts.map +0 -1
  128. package/dist/rx/util/identity.d.ts +0 -2
  129. package/dist/rx/util/identity.d.ts.map +0 -1
  130. package/dist/rx/util/observableToPromise.d.ts +0 -10
  131. package/dist/rx/util/observableToPromise.d.ts.map +0 -1
  132. package/dist/rx/util/pipe.d.ts +0 -4
  133. package/dist/rx/util/pipe.d.ts.map +0 -1
  134. package/dist/share-4d79dc49.js +0 -110
  135. package/dist/share-671b63fa.mjs +0 -108
  136. package/dist/tap-538fa07f.mjs +0 -30
  137. package/dist/tap-799a2d33.js +0 -32
  138. package/links/transformerLink/dist/trpc-client-links-transformerLink.cjs.d.ts +0 -1
  139. package/links/transformerLink/dist/trpc-client-links-transformerLink.cjs.dev.js +0 -67
  140. package/links/transformerLink/dist/trpc-client-links-transformerLink.cjs.js +0 -7
  141. package/links/transformerLink/dist/trpc-client-links-transformerLink.cjs.prod.js +0 -67
  142. package/links/transformerLink/dist/trpc-client-links-transformerLink.esm.js +0 -63
  143. package/links/transformerLink/index.d.ts +0 -1
  144. package/links/transformerLink/index.js +0 -1
  145. package/rx/dist/trpc-client-rx.cjs.d.ts +0 -1
  146. package/rx/dist/trpc-client-rx.cjs.dev.js +0 -9
  147. package/rx/dist/trpc-client-rx.cjs.js +0 -7
  148. package/rx/dist/trpc-client-rx.cjs.prod.js +0 -9
  149. package/rx/dist/trpc-client-rx.esm.js +0 -1
  150. package/rx/index.d.ts +0 -1
  151. package/rx/index.js +0 -1
  152. package/rx/operators/dist/trpc-client-rx-operators.cjs.d.ts +0 -1
  153. package/rx/operators/dist/trpc-client-rx-operators.cjs.dev.js +0 -39
  154. package/rx/operators/dist/trpc-client-rx-operators.cjs.js +0 -7
  155. package/rx/operators/dist/trpc-client-rx-operators.cjs.prod.js +0 -39
  156. package/rx/operators/dist/trpc-client-rx-operators.esm.js +0 -33
  157. package/rx/operators/index.d.ts +0 -1
  158. package/rx/operators/index.js +0 -1
  159. package/src/internals/transformRPCResponse.ts +0 -25
  160. package/src/links/httpUtils.ts +0 -94
  161. package/src/links/transformerLink.ts +0 -70
  162. package/src/rx/index.ts +0 -2
  163. package/src/rx/observable.test.ts +0 -83
  164. package/src/rx/observable.ts +0 -70
  165. package/src/rx/operators/index.ts +0 -3
  166. package/src/rx/operators/map.test.ts +0 -92
  167. package/src/rx/operators/map.ts +0 -25
  168. package/src/rx/operators/share.test.ts +0 -60
  169. package/src/rx/operators/share.ts +0 -67
  170. package/src/rx/operators/tap.ts +0 -26
  171. package/src/rx/types.ts +0 -69
  172. package/src/rx/util/identity.ts +0 -3
  173. package/src/rx/util/observableToPromise.ts +0 -49
  174. package/src/rx/util/pipe.ts +0 -22
package/dist/index.js CHANGED
@@ -4,28 +4,29 @@ 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');
8
+ var links_wsLink = require('./wsLink-44703a83.js');
7
9
  var links_httpBatchLink = require('./links/httpBatchLink.js');
8
- var createChain = require('./createChain-864dbb30.js');
9
- var TRPCClientError = require('./TRPCClientError-ec6bd2ca.js');
10
- var share = require('./share-4d79dc49.js');
11
- var _assertThisInitialized = require('@babel/runtime/helpers/assertThisInitialized');
12
- var _inherits = require('@babel/runtime/helpers/inherits');
13
- var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
14
- var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
15
- var _wrapNativeSuper = require('@babel/runtime/helpers/wrapNativeSuper');
16
- require('./observable-85669100.js');
17
- require('./httpUtils-1f9e4e3c.js');
18
- require('@babel/runtime/helpers/defineProperty');
10
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
11
+ require('@babel/runtime/helpers/slicedToArray');
12
+ var links_splitLink = require('./splitLink-23c5ce5c.js');
13
+ require('@babel/runtime/helpers/assertThisInitialized');
14
+ require('@babel/runtime/helpers/inherits');
15
+ require('@babel/runtime/helpers/possibleConstructorReturn');
16
+ require('@babel/runtime/helpers/getPrototypeOf');
17
+ require('@babel/runtime/helpers/wrapNativeSuper');
18
+ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
19
+ var shared = require('@trpc/server/shared');
20
+ var links_httpLink = require('./links/httpLink.js');
21
+ var links_loggerLink = require('./links/loggerLink.js');
22
+ require('./httpUtils-a0169eef.js');
19
23
 
20
24
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
21
25
 
22
26
  var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
23
27
  var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
24
- var _assertThisInitialized__default = /*#__PURE__*/_interopDefaultLegacy(_assertThisInitialized);
25
- var _inherits__default = /*#__PURE__*/_interopDefaultLegacy(_inherits);
26
- var _possibleConstructorReturn__default = /*#__PURE__*/_interopDefaultLegacy(_possibleConstructorReturn);
27
- var _getPrototypeOf__default = /*#__PURE__*/_interopDefaultLegacy(_getPrototypeOf);
28
- var _wrapNativeSuper__default = /*#__PURE__*/_interopDefaultLegacy(_wrapNativeSuper);
28
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
29
+ var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
29
30
 
30
31
  function getWindow() {
31
32
  if (typeof window !== 'undefined') {
@@ -53,12 +54,134 @@ function getFetch(f) {
53
54
  throw new Error('No fetch implementation found');
54
55
  }
55
56
 
57
+ function dedupeLink() {
58
+ // initialized config
59
+ return function () {
60
+ // initialized in app
61
+ var pending = {};
62
+ return function (_ref) {
63
+ var op = _ref.op,
64
+ next = _ref.next;
65
+
66
+ // initialized for request
67
+ if (op.type !== 'query') {
68
+ // pass through
69
+ return next(op);
70
+ }
71
+
72
+ var key = JSON.stringify([op.path, op.input]);
73
+ var obs$ = pending[key];
74
+
75
+ if (obs$) {
76
+ // console.log('hooking into pending', { op });
77
+ return observable.observable(function (observer) {
78
+ return obs$.subscribe(observer);
79
+ });
80
+ }
81
+
82
+ var shared$ = observable.observable(function (observer) {
83
+ function reset() {
84
+ delete pending[key];
85
+ }
86
+
87
+ var subscription = next(op).subscribe({
88
+ next: function next(v) {
89
+ observer.next(v);
90
+ },
91
+ error: function error(e) {
92
+ reset();
93
+ observer.error(e);
94
+ },
95
+ complete: function complete() {
96
+ reset();
97
+ observer.complete();
98
+ }
99
+ });
100
+ return function () {
101
+ reset();
102
+ subscription.unsubscribe();
103
+ };
104
+ }).pipe(observable.share());
105
+ pending[key] = shared$;
106
+ return shared$;
107
+ };
108
+ };
109
+ }
110
+
111
+ function retryLink(opts) {
112
+ // initialized config
113
+ return function () {
114
+ // initialized in app
115
+ return function (_ref) {
116
+ var op = _ref.op,
117
+ next = _ref.next;
118
+ // initialized for request
119
+ return observable.observable(function (observer) {
120
+ var next$ = null;
121
+ var attempts = 0;
122
+ var isDone = false;
123
+
124
+ function attempt() {
125
+ var _next$;
126
+
127
+ attempts++;
128
+ (_next$ = next$) === null || _next$ === void 0 ? void 0 : _next$.unsubscribe();
129
+ next$ = next(op).subscribe({
130
+ error: function error(_error) {
131
+ if (attempts >= opts.attempts) {
132
+ observer.error(_error);
133
+ return;
134
+ }
135
+
136
+ attempt();
137
+ },
138
+ next: function next(result) {
139
+ if ('result' in result.data) {
140
+ isDone = true;
141
+ observer.next(result);
142
+ return;
143
+ }
144
+
145
+ if (attempts >= opts.attempts) {
146
+ isDone = true;
147
+ observer.next(result);
148
+ return;
149
+ }
150
+
151
+ attempt();
152
+ },
153
+ complete: function complete() {
154
+ if (isDone) {
155
+ observer.complete();
156
+ }
157
+ }
158
+ });
159
+ }
160
+
161
+ attempt();
162
+ return function () {
163
+ var _next$2;
164
+
165
+ isDone = true;
166
+ (_next$2 = next$) === null || _next$2 === void 0 ? void 0 : _next$2.unsubscribe();
167
+ };
168
+ });
169
+ };
170
+ };
171
+ }
172
+
173
+ 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; }
174
+
175
+ 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; }
176
+
56
177
  /** @internal */
57
- function transformOperationResult(result) {
178
+ function transformOperationResult(result, runtime) {
58
179
  var context = result.context;
59
180
 
60
181
  if ('error' in result.data) {
61
- var error = TRPCClientError.TRPCClientError.from(result.data);
182
+ var error = links_wsLink.TRPCClientError.from(_objectSpread(_objectSpread({}, result.data), {}, {
183
+ error: runtime.transformer.deserialize(result.data.error)
184
+ }));
62
185
  return {
63
186
  ok: false,
64
187
  error: error,
@@ -66,75 +189,39 @@ function transformOperationResult(result) {
66
189
  };
67
190
  }
68
191
 
69
- var data = result.data.result.data;
192
+ var data = runtime.transformer.deserialize(result.data.result.data);
70
193
  return {
71
194
  ok: true,
72
195
  data: data,
73
196
  context: context
74
197
  };
75
198
  }
76
-
77
- 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); }; }
78
-
79
- 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; } }
80
-
81
- var ObservableAbortError = /*#__PURE__*/function (_Error) {
82
- _inherits__default["default"](ObservableAbortError, _Error);
83
-
84
- var _super = /*#__PURE__*/_createSuper(ObservableAbortError);
85
-
86
- function ObservableAbortError(message) {
87
- var _this;
88
-
89
- _classCallCheck__default["default"](this, ObservableAbortError);
90
-
91
- _this = _super.call(this, message);
92
- _this.name = 'ObservableAbortError';
93
- Object.setPrototypeOf(_assertThisInitialized__default["default"](_this), ObservableAbortError.prototype);
94
- return _this;
95
- }
96
-
97
- return ObservableAbortError;
98
- }( /*#__PURE__*/_wrapNativeSuper__default["default"](Error));
99
199
  /** @internal */
100
200
 
101
- function observableToPromise(observable) {
102
- var abort;
103
- var promise = new Promise(function (resolve, reject) {
104
- var isDone = false;
105
-
106
- function onDone() {
107
- if (isDone) {
108
- return;
109
- }
110
-
111
- isDone = true;
112
- reject(new ObservableAbortError('This operation was cancelled.'));
113
- obs$.unsubscribe();
114
- }
201
+ function transformSubscriptionOperationResult(result, runtime) {
202
+ var context = result.context;
115
203
 
116
- var obs$ = observable.subscribe({
117
- next: function next(data) {
118
- isDone = true;
119
- resolve(data);
120
- onDone();
121
- },
122
- error: function error(data) {
123
- isDone = true;
124
- reject(data);
125
- onDone();
126
- },
127
- complete: function complete() {
128
- isDone = true;
129
- onDone();
130
- }
204
+ if ('error' in result.data) {
205
+ var error = links_wsLink.TRPCClientError.from(_objectSpread(_objectSpread({}, result.data), {}, {
206
+ error: runtime.transformer.deserialize(result.data.error)
207
+ }), {
208
+ meta: context
131
209
  });
132
- abort = onDone;
210
+ return {
211
+ ok: false,
212
+ error: error,
213
+ context: context
214
+ };
215
+ }
216
+
217
+ var data = _objectSpread(_objectSpread({}, result.data.result), result.data.result.type === 'data' && {
218
+ data: runtime.transformer.deserialize(result.data.result.data)
133
219
  });
220
+
134
221
  return {
135
- promise: promise,
136
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
137
- abort: abort
222
+ ok: true,
223
+ data: data,
224
+ context: context
138
225
  };
139
226
  }
140
227
 
@@ -170,10 +257,22 @@ var TRPCClient = /*#__PURE__*/function () {
170
257
  };
171
258
  }
172
259
 
260
+ var transformer = opts.transformer ? 'input' in opts.transformer ? {
261
+ serialize: opts.transformer.input.serialize,
262
+ deserialize: opts.transformer.output.deserialize
263
+ } : opts.transformer : {
264
+ serialize: function serialize(data) {
265
+ return data;
266
+ },
267
+ deserialize: function deserialize(data) {
268
+ return data;
269
+ }
270
+ };
173
271
  this.runtime = {
174
272
  AbortController: AC,
175
273
  fetch: _fetch,
176
- headers: getHeadersFn()
274
+ headers: getHeadersFn(),
275
+ transformer: transformer
177
276
  };
178
277
 
179
278
  if ('links' in opts) {
@@ -195,7 +294,7 @@ var TRPCClient = /*#__PURE__*/function () {
195
294
  path = _ref.path,
196
295
  _ref$context = _ref.context,
197
296
  context = _ref$context === void 0 ? {} : _ref$context;
198
- var chain$ = createChain.createChain({
297
+ var chain$ = links_splitLink.createChain({
199
298
  links: this.links,
200
299
  op: {
201
300
  id: getRequestId(),
@@ -205,20 +304,22 @@ var TRPCClient = /*#__PURE__*/function () {
205
304
  context: context
206
305
  }
207
306
  });
208
- return chain$.pipe(share.share());
307
+ return chain$.pipe(observable.share());
209
308
  }
210
309
  }, {
211
310
  key: "requestAsPromise",
212
311
  value: function requestAsPromise(opts) {
312
+ var _this2 = this;
313
+
213
314
  var req$ = this.$request(opts);
214
315
 
215
- var _observableToPromise = observableToPromise(req$),
316
+ var _observableToPromise = observable.observableToPromise(req$),
216
317
  promise = _observableToPromise.promise,
217
318
  abort = _observableToPromise.abort;
218
319
 
219
320
  var cancellablePromise = new Promise(function (resolve, reject) {
220
321
  promise.then(function (result) {
221
- var transformed = transformOperationResult(result);
322
+ var transformed = transformOperationResult(result, _this2.runtime);
222
323
 
223
324
  if (transformed.ok) {
224
325
  resolve(transformed.data);
@@ -227,7 +328,7 @@ var TRPCClient = /*#__PURE__*/function () {
227
328
 
228
329
  reject(transformed.error);
229
330
  }).catch(function (err) {
230
- reject(TRPCClientError.TRPCClientError.from(err));
331
+ reject(links_wsLink.TRPCClientError.from(err));
231
332
  });
232
333
  });
233
334
  cancellablePromise.cancel = abort;
@@ -236,26 +337,34 @@ var TRPCClient = /*#__PURE__*/function () {
236
337
  }, {
237
338
  key: "query",
238
339
  value: function query(path) {
239
- var _ref2;
340
+ var _args$;
240
341
 
241
- var context = (_ref2 = arguments.length <= 2 ? undefined : arguments[2]) === null || _ref2 === void 0 ? void 0 : _ref2.context;
342
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
343
+ args[_key - 1] = arguments[_key];
344
+ }
345
+
346
+ var context = (_args$ = args[1]) === null || _args$ === void 0 ? void 0 : _args$.requestContext;
242
347
  return this.requestAsPromise({
243
348
  type: 'query',
244
349
  path: path,
245
- input: arguments.length <= 1 ? undefined : arguments[1],
350
+ input: args[0],
246
351
  context: context
247
352
  });
248
353
  }
249
354
  }, {
250
355
  key: "mutation",
251
356
  value: function mutation(path) {
252
- var _ref3;
357
+ var _args$2;
358
+
359
+ for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
360
+ args[_key2 - 1] = arguments[_key2];
361
+ }
253
362
 
254
- var context = (_ref3 = arguments.length <= 2 ? undefined : arguments[2]) === null || _ref3 === void 0 ? void 0 : _ref3.context;
363
+ var context = (_args$2 = args[1]) === null || _args$2 === void 0 ? void 0 : _args$2.requestContext;
255
364
  return this.requestAsPromise({
256
365
  type: 'mutation',
257
366
  path: path,
258
- input: arguments.length <= 1 ? undefined : arguments[1],
367
+ input: args[0],
259
368
  context: context
260
369
  });
261
370
  }
@@ -266,49 +375,89 @@ var TRPCClient = /*#__PURE__*/function () {
266
375
  type: 'subscription',
267
376
  path: path,
268
377
  input: input,
269
- context: opts.context
378
+ context: opts.requestContext
270
379
  });
271
- var observer = observable$.subscribe({
380
+ var runtime = this.runtime;
381
+ return observable$.subscribe({
272
382
  next: function next(result) {
273
- var _opts$next;
383
+ var _opts$onError;
274
384
 
275
- if ('error' in result.data) {
276
- var _opts$error;
385
+ var transformed = transformSubscriptionOperationResult(result, runtime);
386
+
387
+ if (transformed.ok) {
388
+ if (transformed.data.type === 'started') {
389
+ var _opts$onStarted;
390
+
391
+ (_opts$onStarted = opts.onStarted) === null || _opts$onStarted === void 0 ? void 0 : _opts$onStarted.call(opts);
392
+ } else if (transformed.data.type === 'stopped') {
393
+ var _opts$onStopped;
394
+
395
+ (_opts$onStopped = opts.onStopped) === null || _opts$onStopped === void 0 ? void 0 : _opts$onStopped.call(opts);
396
+ } else if (transformed.data.type === 'data') {
397
+ var _opts$onData;
398
+
399
+ (_opts$onData = opts.onData) === null || _opts$onData === void 0 ? void 0 : _opts$onData.call(opts, transformed.data.data);
400
+ }
277
401
 
278
- var err = TRPCClientError.TRPCClientError.from(result.data, {
279
- meta: result.context
280
- });
281
- (_opts$error = opts.error) === null || _opts$error === void 0 ? void 0 : _opts$error.call(opts, err);
282
402
  return;
283
403
  }
284
404
 
285
- (_opts$next = opts.next) === null || _opts$next === void 0 ? void 0 : _opts$next.call(opts, result.data.result);
405
+ (_opts$onError = opts.onError) === null || _opts$onError === void 0 ? void 0 : _opts$onError.call(opts, transformed.error);
286
406
  },
287
407
  error: function error(err) {
288
- var _opts$error2;
408
+ var _opts$onError2;
289
409
 
290
- (_opts$error2 = opts.error) === null || _opts$error2 === void 0 ? void 0 : _opts$error2.call(opts, err);
410
+ (_opts$onError2 = opts.onError) === null || _opts$onError2 === void 0 ? void 0 : _opts$onError2.call(opts, err);
291
411
  },
292
412
  complete: function complete() {
293
- var _opts$complete;
413
+ var _opts$onComplete;
294
414
 
295
- (_opts$complete = opts.complete) === null || _opts$complete === void 0 ? void 0 : _opts$complete.call(opts);
415
+ (_opts$onComplete = opts.onComplete) === null || _opts$onComplete === void 0 ? void 0 : _opts$onComplete.call(opts);
296
416
  }
297
417
  });
298
- return function () {
299
- observer.unsubscribe();
300
- };
301
418
  }
302
419
  }]);
303
420
 
304
421
  return TRPCClient;
305
422
  }();
306
423
 
307
- /* eslint-disable @typescript-eslint/no-explicit-any */
424
+ /* eslint-disable @typescript-eslint/no-non-null-assertion */
308
425
  function createTRPCClient(opts) {
309
- return new TRPCClient(opts);
426
+ var client = new TRPCClient(opts);
427
+ return client;
428
+ } // Also the client created above needs to somehow be like `TRPCClient<Router> & Omit<Router, 'createCaller' | 'createProcedure' | '_def' | 'transformer' | 'errorFormatter' | 'getErrorShape>`
429
+
430
+ var clientCallTypeMap = {
431
+ query: 'query',
432
+ mutate: 'mutation',
433
+ subscribe: 'subscription'
434
+ };
435
+ function createTRPCClientProxy(client) {
436
+ var proxy = shared.createProxy(function (_ref) {
437
+ var _ref2;
438
+
439
+ var path = _ref.path,
440
+ args = _ref.args;
441
+
442
+ var pathCopy = _toConsumableArray__default["default"](path);
443
+
444
+ var clientCallType = pathCopy.pop();
445
+ var procedureType = clientCallTypeMap[clientCallType];
446
+ var fullPath = pathCopy.join('.');
447
+ return (_ref2 = client)[procedureType].apply(_ref2, [fullPath].concat(_toConsumableArray__default["default"](args)));
448
+ });
449
+ return proxy;
310
450
  }
311
451
 
312
- exports.TRPCClientError = TRPCClientError.TRPCClientError;
452
+ exports.TRPCClientError = links_wsLink.TRPCClientError;
453
+ exports.createWSClient = links_wsLink.createWSClient;
454
+ exports.wsLink = links_wsLink.wsLink;
455
+ exports.httpBatchLink = links_httpBatchLink.httpBatchLink;
456
+ exports.splitLink = links_splitLink.splitLink;
457
+ exports.httpLink = links_httpLink.httpLink;
458
+ exports.loggerLink = links_loggerLink.loggerLink;
313
459
  exports.createTRPCClient = createTRPCClient;
460
+ exports.createTRPCClientProxy = createTRPCClientProxy;
461
+ exports.dedupeLink = dedupeLink;
314
462
  exports.getFetch = getFetch;
463
+ exports.retryLink = retryLink;