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

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