@trpc/client 10.0.0-alpha.3 → 10.0.0-alpha.32

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