@trpc/client 9.20.1 → 10.0.0-alpha.10

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 (154) hide show
  1. package/dist/TRPCClientError-17b117e1.mjs +81 -0
  2. package/dist/TRPCClientError-ec6bd2ca.js +94 -0
  3. package/dist/{declarations/src/TRPCClientError.d.ts → TRPCClientError.d.ts} +29 -33
  4. package/dist/TRPCClientError.d.ts.map +1 -0
  5. package/dist/createChain-3b458753.js +27 -0
  6. package/dist/createChain-b7cb1f5a.mjs +25 -0
  7. package/dist/{declarations/src/createTRPCClient.d.ts → createTRPCClient.d.ts} +5 -6
  8. package/dist/createTRPCClient.d.ts.map +1 -0
  9. package/dist/{declarations/src/getFetch.d.ts → getFetch.d.ts} +1 -1
  10. package/dist/getFetch.d.ts.map +1 -0
  11. package/dist/httpUtils-1f9e4e3c.js +97 -0
  12. package/dist/httpUtils-c09d7b79.mjs +91 -0
  13. package/dist/{declarations/src/index.d.ts → index.d.ts} +4 -4
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +243 -0
  16. package/dist/index.mjs +233 -0
  17. package/dist/index.ts.js +1 -0
  18. package/dist/{declarations/src/internals → internals}/TRPCClient.d.ts +62 -61
  19. package/dist/internals/TRPCClient.d.ts.map +1 -0
  20. package/dist/{declarations/src/internals → internals}/dataLoader.d.ts +16 -16
  21. package/dist/internals/dataLoader.d.ts.map +1 -0
  22. package/dist/{declarations/src/internals → internals}/fetchHelpers.d.ts +2 -2
  23. package/dist/internals/fetchHelpers.d.ts.map +1 -0
  24. package/dist/{declarations/src/internals → internals}/retryDelay.d.ts +1 -1
  25. package/dist/internals/retryDelay.d.ts.map +1 -0
  26. package/dist/links/dedupeLink.d.ts +4 -0
  27. package/dist/links/dedupeLink.d.ts.map +1 -0
  28. package/dist/{declarations/src/links → links}/httpBatchLink.d.ts +7 -6
  29. package/dist/links/httpBatchLink.d.ts.map +1 -0
  30. package/dist/links/httpBatchLink.js +195 -0
  31. package/dist/links/httpBatchLink.mjs +191 -0
  32. package/dist/links/httpBatchLink.ts.js +1 -0
  33. package/dist/{declarations/src/links → links}/httpLink.d.ts +4 -3
  34. package/dist/links/httpLink.d.ts.map +1 -0
  35. package/dist/links/httpLink.js +44 -0
  36. package/dist/links/httpLink.mjs +40 -0
  37. package/dist/links/httpLink.ts.js +1 -0
  38. package/dist/links/httpUtils.d.ts +22 -0
  39. package/dist/links/httpUtils.d.ts.map +1 -0
  40. package/dist/links/internals/createChain.d.ts +8 -0
  41. package/dist/links/internals/createChain.d.ts.map +1 -0
  42. package/dist/links/internals/transformOperationResult.d.ts +16 -0
  43. package/dist/links/internals/transformOperationResult.d.ts.map +1 -0
  44. package/dist/{declarations/src/links → links}/loggerLink.d.ts +38 -37
  45. package/dist/links/loggerLink.d.ts.map +1 -0
  46. package/dist/links/loggerLink.js +107 -0
  47. package/dist/links/loggerLink.mjs +98 -0
  48. package/dist/links/loggerLink.ts.js +1 -0
  49. package/dist/links/retryLink.d.ts +6 -0
  50. package/dist/links/retryLink.d.ts.map +1 -0
  51. package/dist/links/splitLink.d.ts +14 -0
  52. package/dist/links/splitLink.d.ts.map +1 -0
  53. package/dist/links/splitLink.js +32 -0
  54. package/dist/links/splitLink.mjs +28 -0
  55. package/dist/links/splitLink.ts.js +1 -0
  56. package/dist/links/transformerLink.d.ts +4 -0
  57. package/dist/links/transformerLink.d.ts.map +1 -0
  58. package/dist/links/transformerLink.js +79 -0
  59. package/dist/links/transformerLink.mjs +71 -0
  60. package/dist/links/transformerLink.ts.js +1 -0
  61. package/dist/links/types.d.ts +39 -0
  62. package/dist/links/types.d.ts.map +1 -0
  63. package/dist/links/wsLink.d.ts +21 -0
  64. package/dist/links/wsLink.d.ts.map +1 -0
  65. package/dist/links/wsLink.js +385 -0
  66. package/dist/links/wsLink.mjs +370 -0
  67. package/dist/links/wsLink.ts.js +1 -0
  68. package/dist/rx.d.ts +11 -0
  69. package/dist/rx.d.ts.map +1 -0
  70. package/dist/rx.js +88 -0
  71. package/dist/rx.mjs +73 -0
  72. package/dist/rx.ts.js +1 -0
  73. package/links/httpBatchLink/index.d.ts +1 -0
  74. package/links/httpBatchLink/index.js +1 -0
  75. package/links/httpLink/index.d.ts +1 -0
  76. package/links/httpLink/index.js +1 -0
  77. package/links/loggerLink/index.d.ts +1 -0
  78. package/links/loggerLink/index.js +1 -0
  79. package/links/splitLink/index.d.ts +1 -0
  80. package/links/splitLink/index.js +1 -0
  81. package/links/transformerLink/index.d.ts +1 -0
  82. package/links/transformerLink/index.js +1 -0
  83. package/links/wsLink/index.d.ts +1 -0
  84. package/links/wsLink/index.js +1 -0
  85. package/package.json +53 -18
  86. package/src/TRPCClientError.ts +17 -21
  87. package/src/createTRPCClient.ts +4 -3
  88. package/src/index.ts +1 -1
  89. package/src/internals/TRPCClient.ts +78 -92
  90. package/src/internals/dataLoader.ts +1 -1
  91. package/src/links/dedupeLink.test.ts +134 -0
  92. package/src/links/dedupeLink.ts +54 -0
  93. package/src/links/httpBatchLink.ts +36 -46
  94. package/src/links/httpLink.ts +26 -37
  95. package/src/{internals/httpRequest.ts → links/httpUtils.ts} +30 -21
  96. package/src/links/internals/createChain.test.ts +132 -0
  97. package/src/links/internals/createChain.ts +31 -0
  98. package/src/links/internals/transformOperationResult.ts +25 -0
  99. package/src/links/loggerLink.ts +39 -22
  100. package/src/links/retryLink.ts +44 -14
  101. package/src/links/splitLink.test.ts +56 -0
  102. package/src/links/splitLink.ts +23 -38
  103. package/src/links/transformerLink.ts +74 -0
  104. package/src/links/types.ts +64 -0
  105. package/src/links/wsLink.ts +57 -77
  106. package/src/rx.ts +50 -0
  107. package/dist/TRPCClientError-09b8a26b.esm.js +0 -77
  108. package/dist/TRPCClientError-bfee2bf5.cjs.dev.js +0 -79
  109. package/dist/TRPCClientError-e9bf96e9.cjs.prod.js +0 -79
  110. package/dist/declarations/src/TRPCClientError.d.ts.map +0 -1
  111. package/dist/declarations/src/createTRPCClient.d.ts.map +0 -1
  112. package/dist/declarations/src/getFetch.d.ts.map +0 -1
  113. package/dist/declarations/src/index.d.ts.map +0 -1
  114. package/dist/declarations/src/internals/TRPCAbortError.d.ts +0 -4
  115. package/dist/declarations/src/internals/TRPCAbortError.d.ts.map +0 -1
  116. package/dist/declarations/src/internals/TRPCClient.d.ts.map +0 -1
  117. package/dist/declarations/src/internals/dataLoader.d.ts.map +0 -1
  118. package/dist/declarations/src/internals/executeChain.d.ts +0 -9
  119. package/dist/declarations/src/internals/executeChain.d.ts.map +0 -1
  120. package/dist/declarations/src/internals/fetchHelpers.d.ts.map +0 -1
  121. package/dist/declarations/src/internals/httpRequest.d.ts +0 -14
  122. package/dist/declarations/src/internals/httpRequest.d.ts.map +0 -1
  123. package/dist/declarations/src/internals/observable.d.ts +0 -18
  124. package/dist/declarations/src/internals/observable.d.ts.map +0 -1
  125. package/dist/declarations/src/internals/retryDelay.d.ts.map +0 -1
  126. package/dist/declarations/src/internals/transformRPCResponse.d.ts +0 -15
  127. package/dist/declarations/src/internals/transformRPCResponse.d.ts.map +0 -1
  128. package/dist/declarations/src/links/core.d.ts +0 -45
  129. package/dist/declarations/src/links/core.d.ts.map +0 -1
  130. package/dist/declarations/src/links/httpBatchLink.d.ts.map +0 -1
  131. package/dist/declarations/src/links/httpLink.d.ts.map +0 -1
  132. package/dist/declarations/src/links/loggerLink.d.ts.map +0 -1
  133. package/dist/declarations/src/links/splitLink.d.ts +0 -24
  134. package/dist/declarations/src/links/splitLink.d.ts.map +0 -1
  135. package/dist/declarations/src/links/wsLink.d.ts +0 -30
  136. package/dist/declarations/src/links/wsLink.d.ts.map +0 -1
  137. package/dist/transformRPCResponse-57e80136.cjs.dev.js +0 -133
  138. package/dist/transformRPCResponse-739c13d0.cjs.prod.js +0 -133
  139. package/dist/transformRPCResponse-f7f8b0e1.esm.js +0 -129
  140. package/dist/trpc-client.cjs.d.ts +0 -1
  141. package/dist/trpc-client.cjs.dev.js +0 -379
  142. package/dist/trpc-client.cjs.js +0 -7
  143. package/dist/trpc-client.cjs.prod.js +0 -379
  144. package/dist/trpc-client.esm.js +0 -374
  145. package/links/httpBatchLink/package.json +0 -4
  146. package/links/httpLink/package.json +0 -4
  147. package/links/loggerLink/package.json +0 -4
  148. package/links/splitLink/package.json +0 -4
  149. package/links/wsLink/package.json +0 -4
  150. package/src/internals/TRPCAbortError.ts +0 -7
  151. package/src/internals/executeChain.ts +0 -67
  152. package/src/internals/observable.ts +0 -89
  153. package/src/internals/transformRPCResponse.ts +0 -25
  154. package/src/links/core.ts +0 -71
package/dist/index.js ADDED
@@ -0,0 +1,243 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
6
+ var _createClass = require('@babel/runtime/helpers/createClass');
7
+ var links_httpBatchLink = require('./links/httpBatchLink.js');
8
+ var createChain = require('./createChain-3b458753.js');
9
+ var TRPCClientError = require('./TRPCClientError-ec6bd2ca.js');
10
+ var rx = require('./rx.js');
11
+ var operators = require('rxjs/operators');
12
+ require('rxjs');
13
+ require('./httpUtils-1f9e4e3c.js');
14
+ require('@babel/runtime/helpers/defineProperty');
15
+ require('@babel/runtime/helpers/assertThisInitialized');
16
+ require('@babel/runtime/helpers/inherits');
17
+ require('@babel/runtime/helpers/possibleConstructorReturn');
18
+ require('@babel/runtime/helpers/getPrototypeOf');
19
+ require('@babel/runtime/helpers/wrapNativeSuper');
20
+
21
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
22
+
23
+ var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
24
+ var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
25
+
26
+ function getWindow() {
27
+ if (typeof window !== 'undefined') {
28
+ return window;
29
+ }
30
+
31
+ return global;
32
+ }
33
+ function getAbortController(ac) {
34
+ var win = getWindow();
35
+ return ac || win.AbortController || null;
36
+ }
37
+
38
+ function getFetch(f) {
39
+ if (f) {
40
+ return f;
41
+ }
42
+
43
+ var win = getWindow();
44
+
45
+ if (win.fetch) {
46
+ return typeof win.fetch.bind === 'function' ? win.fetch.bind(win) : win.fetch;
47
+ }
48
+
49
+ throw new Error('No fetch implementation found');
50
+ }
51
+
52
+ /** @internal */
53
+ function transformOperationResult(result) {
54
+ var context = result.context;
55
+
56
+ if ('error' in result.data) {
57
+ var error = TRPCClientError.TRPCClientError.from(result.data);
58
+ return {
59
+ ok: false,
60
+ error: error,
61
+ context: context
62
+ };
63
+ }
64
+
65
+ var data = result.data.result.data;
66
+ return {
67
+ ok: true,
68
+ data: data,
69
+ context: context
70
+ };
71
+ }
72
+
73
+ var idCounter = 0;
74
+
75
+ function getRequestId() {
76
+ return ++idCounter;
77
+ }
78
+
79
+ var TRPCClient = /*#__PURE__*/function () {
80
+ function TRPCClient(opts) {
81
+ var _this = this;
82
+
83
+ _classCallCheck__default["default"](this, TRPCClient);
84
+
85
+ this.links = void 0;
86
+ this.runtime = void 0;
87
+
88
+ var _fetch = getFetch(opts === null || opts === void 0 ? void 0 : opts.fetch);
89
+
90
+ var AC = getAbortController(opts === null || opts === void 0 ? void 0 : opts.AbortController);
91
+
92
+ function getHeadersFn() {
93
+ if (opts.headers) {
94
+ var headers = opts.headers;
95
+ return typeof headers === 'function' ? headers : function () {
96
+ return headers;
97
+ };
98
+ }
99
+
100
+ return function () {
101
+ return {};
102
+ };
103
+ }
104
+
105
+ this.runtime = {
106
+ AbortController: AC,
107
+ fetch: _fetch,
108
+ headers: getHeadersFn()
109
+ };
110
+
111
+ if ('links' in opts) {
112
+ this.links = opts.links.map(function (link) {
113
+ return link(_this.runtime);
114
+ });
115
+ } else {
116
+ this.links = [links_httpBatchLink.httpBatchLink({
117
+ url: opts.url
118
+ })(this.runtime)];
119
+ }
120
+ }
121
+
122
+ _createClass__default["default"](TRPCClient, [{
123
+ key: "$request",
124
+ value: function $request(_ref) {
125
+ var type = _ref.type,
126
+ input = _ref.input,
127
+ path = _ref.path,
128
+ _ref$context = _ref.context,
129
+ context = _ref$context === void 0 ? {} : _ref$context;
130
+ var chain$ = createChain.createChain({
131
+ links: this.links,
132
+ op: {
133
+ id: getRequestId(),
134
+ type: type,
135
+ path: path,
136
+ input: input,
137
+ context: context
138
+ }
139
+ });
140
+ return chain$.pipe(operators.share());
141
+ }
142
+ }, {
143
+ key: "requestAsPromise",
144
+ value: function requestAsPromise(opts) {
145
+ var req$ = this.$request(opts);
146
+
147
+ var _observableToPromise = rx.observableToPromise(req$),
148
+ promise = _observableToPromise.promise,
149
+ abort = _observableToPromise.abort;
150
+
151
+ var cancellablePromise = new Promise(function (resolve, reject) {
152
+ promise.then(function (result) {
153
+ var transformed = transformOperationResult(result);
154
+
155
+ if (transformed.ok) {
156
+ resolve(transformed.data);
157
+ return;
158
+ }
159
+
160
+ reject(transformed.error);
161
+ }).catch(function (err) {
162
+ reject(TRPCClientError.TRPCClientError.from(err));
163
+ });
164
+ });
165
+ cancellablePromise.cancel = abort;
166
+ return cancellablePromise;
167
+ }
168
+ }, {
169
+ key: "query",
170
+ value: function query(path) {
171
+ var _ref2;
172
+
173
+ var context = (_ref2 = arguments.length <= 2 ? undefined : arguments[2]) === null || _ref2 === void 0 ? void 0 : _ref2.context;
174
+ return this.requestAsPromise({
175
+ type: 'query',
176
+ path: path,
177
+ input: arguments.length <= 1 ? undefined : arguments[1],
178
+ context: context
179
+ });
180
+ }
181
+ }, {
182
+ key: "mutation",
183
+ value: function mutation(path) {
184
+ var _ref3;
185
+
186
+ var context = (_ref3 = arguments.length <= 2 ? undefined : arguments[2]) === null || _ref3 === void 0 ? void 0 : _ref3.context;
187
+ return this.requestAsPromise({
188
+ type: 'mutation',
189
+ path: path,
190
+ input: arguments.length <= 1 ? undefined : arguments[1],
191
+ context: context
192
+ });
193
+ }
194
+ }, {
195
+ key: "subscription",
196
+ value: function subscription(path, input, opts) {
197
+ var observable$ = this.$request({
198
+ type: 'subscription',
199
+ path: path,
200
+ input: input,
201
+ context: opts.context
202
+ });
203
+ return observable$.subscribe({
204
+ next: function next(result) {
205
+ var _opts$next;
206
+
207
+ if ('error' in result.data) {
208
+ var _opts$error;
209
+
210
+ var err = TRPCClientError.TRPCClientError.from(result.data, {
211
+ meta: result.context
212
+ });
213
+ (_opts$error = opts.error) === null || _opts$error === void 0 ? void 0 : _opts$error.call(opts, err);
214
+ return;
215
+ }
216
+
217
+ (_opts$next = opts.next) === null || _opts$next === void 0 ? void 0 : _opts$next.call(opts, result.data.result);
218
+ },
219
+ error: function error(err) {
220
+ var _opts$error2;
221
+
222
+ (_opts$error2 = opts.error) === null || _opts$error2 === void 0 ? void 0 : _opts$error2.call(opts, err);
223
+ },
224
+ complete: function complete() {
225
+ var _opts$complete;
226
+
227
+ (_opts$complete = opts.complete) === null || _opts$complete === void 0 ? void 0 : _opts$complete.call(opts);
228
+ }
229
+ });
230
+ }
231
+ }]);
232
+
233
+ return TRPCClient;
234
+ }();
235
+
236
+ /* eslint-disable @typescript-eslint/no-explicit-any */
237
+ function createTRPCClient(opts) {
238
+ return new TRPCClient(opts);
239
+ }
240
+
241
+ exports.TRPCClientError = TRPCClientError.TRPCClientError;
242
+ exports.createTRPCClient = createTRPCClient;
243
+ exports.getFetch = getFetch;
package/dist/index.mjs ADDED
@@ -0,0 +1,233 @@
1
+ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
+ import _createClass from '@babel/runtime/helpers/createClass';
3
+ import { httpBatchLink } from './links/httpBatchLink.mjs';
4
+ import { c as createChain } from './createChain-b7cb1f5a.mjs';
5
+ import { T as TRPCClientError } from './TRPCClientError-17b117e1.mjs';
6
+ export { T as TRPCClientError } from './TRPCClientError-17b117e1.mjs';
7
+ import { observableToPromise } from './rx.mjs';
8
+ import { share } from 'rxjs/operators';
9
+ import 'rxjs';
10
+ import './httpUtils-c09d7b79.mjs';
11
+ import '@babel/runtime/helpers/defineProperty';
12
+ import '@babel/runtime/helpers/assertThisInitialized';
13
+ import '@babel/runtime/helpers/inherits';
14
+ import '@babel/runtime/helpers/possibleConstructorReturn';
15
+ import '@babel/runtime/helpers/getPrototypeOf';
16
+ import '@babel/runtime/helpers/wrapNativeSuper';
17
+
18
+ function getWindow() {
19
+ if (typeof window !== 'undefined') {
20
+ return window;
21
+ }
22
+
23
+ return global;
24
+ }
25
+ function getAbortController(ac) {
26
+ var win = getWindow();
27
+ return ac || win.AbortController || null;
28
+ }
29
+
30
+ function getFetch(f) {
31
+ if (f) {
32
+ return f;
33
+ }
34
+
35
+ var win = getWindow();
36
+
37
+ if (win.fetch) {
38
+ return typeof win.fetch.bind === 'function' ? win.fetch.bind(win) : win.fetch;
39
+ }
40
+
41
+ throw new Error('No fetch implementation found');
42
+ }
43
+
44
+ /** @internal */
45
+ function transformOperationResult(result) {
46
+ var context = result.context;
47
+
48
+ if ('error' in result.data) {
49
+ var error = TRPCClientError.from(result.data);
50
+ return {
51
+ ok: false,
52
+ error: error,
53
+ context: context
54
+ };
55
+ }
56
+
57
+ var data = result.data.result.data;
58
+ return {
59
+ ok: true,
60
+ data: data,
61
+ context: context
62
+ };
63
+ }
64
+
65
+ var idCounter = 0;
66
+
67
+ function getRequestId() {
68
+ return ++idCounter;
69
+ }
70
+
71
+ var TRPCClient = /*#__PURE__*/function () {
72
+ function TRPCClient(opts) {
73
+ var _this = this;
74
+
75
+ _classCallCheck(this, TRPCClient);
76
+
77
+ this.links = void 0;
78
+ this.runtime = void 0;
79
+
80
+ var _fetch = getFetch(opts === null || opts === void 0 ? void 0 : opts.fetch);
81
+
82
+ var AC = getAbortController(opts === null || opts === void 0 ? void 0 : opts.AbortController);
83
+
84
+ function getHeadersFn() {
85
+ if (opts.headers) {
86
+ var headers = opts.headers;
87
+ return typeof headers === 'function' ? headers : function () {
88
+ return headers;
89
+ };
90
+ }
91
+
92
+ return function () {
93
+ return {};
94
+ };
95
+ }
96
+
97
+ this.runtime = {
98
+ AbortController: AC,
99
+ fetch: _fetch,
100
+ headers: getHeadersFn()
101
+ };
102
+
103
+ if ('links' in opts) {
104
+ this.links = opts.links.map(function (link) {
105
+ return link(_this.runtime);
106
+ });
107
+ } else {
108
+ this.links = [httpBatchLink({
109
+ url: opts.url
110
+ })(this.runtime)];
111
+ }
112
+ }
113
+
114
+ _createClass(TRPCClient, [{
115
+ key: "$request",
116
+ value: function $request(_ref) {
117
+ var type = _ref.type,
118
+ input = _ref.input,
119
+ path = _ref.path,
120
+ _ref$context = _ref.context,
121
+ context = _ref$context === void 0 ? {} : _ref$context;
122
+ var chain$ = createChain({
123
+ links: this.links,
124
+ op: {
125
+ id: getRequestId(),
126
+ type: type,
127
+ path: path,
128
+ input: input,
129
+ context: context
130
+ }
131
+ });
132
+ return chain$.pipe(share());
133
+ }
134
+ }, {
135
+ key: "requestAsPromise",
136
+ value: function requestAsPromise(opts) {
137
+ var req$ = this.$request(opts);
138
+
139
+ var _observableToPromise = observableToPromise(req$),
140
+ promise = _observableToPromise.promise,
141
+ abort = _observableToPromise.abort;
142
+
143
+ var cancellablePromise = new Promise(function (resolve, reject) {
144
+ promise.then(function (result) {
145
+ var transformed = transformOperationResult(result);
146
+
147
+ if (transformed.ok) {
148
+ resolve(transformed.data);
149
+ return;
150
+ }
151
+
152
+ reject(transformed.error);
153
+ }).catch(function (err) {
154
+ reject(TRPCClientError.from(err));
155
+ });
156
+ });
157
+ cancellablePromise.cancel = abort;
158
+ return cancellablePromise;
159
+ }
160
+ }, {
161
+ key: "query",
162
+ value: function query(path) {
163
+ var _ref2;
164
+
165
+ var context = (_ref2 = arguments.length <= 2 ? undefined : arguments[2]) === null || _ref2 === void 0 ? void 0 : _ref2.context;
166
+ return this.requestAsPromise({
167
+ type: 'query',
168
+ path: path,
169
+ input: arguments.length <= 1 ? undefined : arguments[1],
170
+ context: context
171
+ });
172
+ }
173
+ }, {
174
+ key: "mutation",
175
+ value: function mutation(path) {
176
+ var _ref3;
177
+
178
+ var context = (_ref3 = arguments.length <= 2 ? undefined : arguments[2]) === null || _ref3 === void 0 ? void 0 : _ref3.context;
179
+ return this.requestAsPromise({
180
+ type: 'mutation',
181
+ path: path,
182
+ input: arguments.length <= 1 ? undefined : arguments[1],
183
+ context: context
184
+ });
185
+ }
186
+ }, {
187
+ key: "subscription",
188
+ value: function subscription(path, input, opts) {
189
+ var observable$ = this.$request({
190
+ type: 'subscription',
191
+ path: path,
192
+ input: input,
193
+ context: opts.context
194
+ });
195
+ return observable$.subscribe({
196
+ next: function next(result) {
197
+ var _opts$next;
198
+
199
+ if ('error' in result.data) {
200
+ var _opts$error;
201
+
202
+ var err = TRPCClientError.from(result.data, {
203
+ meta: result.context
204
+ });
205
+ (_opts$error = opts.error) === null || _opts$error === void 0 ? void 0 : _opts$error.call(opts, err);
206
+ return;
207
+ }
208
+
209
+ (_opts$next = opts.next) === null || _opts$next === void 0 ? void 0 : _opts$next.call(opts, result.data.result);
210
+ },
211
+ error: function error(err) {
212
+ var _opts$error2;
213
+
214
+ (_opts$error2 = opts.error) === null || _opts$error2 === void 0 ? void 0 : _opts$error2.call(opts, err);
215
+ },
216
+ complete: function complete() {
217
+ var _opts$complete;
218
+
219
+ (_opts$complete = opts.complete) === null || _opts$complete === void 0 ? void 0 : _opts$complete.call(opts);
220
+ }
221
+ });
222
+ }
223
+ }]);
224
+
225
+ return TRPCClient;
226
+ }();
227
+
228
+ /* eslint-disable @typescript-eslint/no-explicit-any */
229
+ function createTRPCClient(opts) {
230
+ return new TRPCClient(opts);
231
+ }
232
+
233
+ export { createTRPCClient, getFetch };
@@ -0,0 +1 @@
1
+
@@ -1,62 +1,63 @@
1
- import { AnyRouter, ClientDataTransformerOptions, inferHandlerInput, inferProcedureInput, inferSubscriptionOutput } from '@trpc/server';
2
- import { TRPCResult } from '@trpc/server/rpc';
3
- import { ObservableCallbacks, UnsubscribeFn } from './observable';
4
- import { CancelFn, HTTPHeaders, LinkRuntimeOptions, OperationContext, TRPCLink } from '../links/core';
5
- import { TRPCClientError } from '../TRPCClientError';
6
- declare type CancellablePromise<T = unknown> = Promise<T> & {
7
- cancel: CancelFn;
8
- };
9
- /**
10
- * @deprecated no longer used
11
- */
12
- export interface FetchOptions {
13
- fetch?: typeof fetch;
14
- AbortController?: typeof AbortController;
15
- }
16
- export declare type CreateTRPCClientOptions<TRouter extends AnyRouter> = {
17
- /**
18
- * Add ponyfill for fetch
19
- */
20
- fetch?: typeof fetch;
21
- /**
22
- * add ponyfill for AbortController
23
- */
24
- AbortController?: typeof AbortController;
25
- /**
26
- * headers to be set on outgoing requests / callback that of said headers
27
- */
28
- headers?: HTTPHeaders | (() => HTTPHeaders | Promise<HTTPHeaders>);
29
- /**
30
- * Data transformer
31
- * @link http://localhost:3000/docs/data-transformers
32
- **/
33
- transformer?: ClientDataTransformerOptions;
34
- } & ({
35
- /**
36
- * HTTP URL of API
37
- **/
38
- url: string;
39
- } | {
40
- /**
41
- * @link http://localhost:3000/docs/links
42
- **/
43
- links: TRPCLink<TRouter>[];
44
- });
45
- export interface TRPCRequestOptions {
46
- /**
47
- * Pass additional context to links
48
- */
49
- context?: OperationContext;
50
- }
51
- export declare class TRPCClient<TRouter extends AnyRouter> {
52
- private readonly links;
53
- readonly runtime: LinkRuntimeOptions;
54
- constructor(opts: CreateTRPCClientOptions<TRouter>);
55
- private $request;
56
- private requestAsPromise;
57
- query<TQueries extends TRouter['_def']['queries'], TPath extends string & keyof TQueries>(path: TPath, ...args: [...inferHandlerInput<TQueries[TPath]>, TRPCRequestOptions?]): CancellablePromise<import("@trpc/server").ThenArg<ReturnType<TQueries[TPath]["call"]>>>;
58
- mutation<TMutations extends TRouter['_def']['mutations'], TPath extends string & keyof TMutations>(path: TPath, ...args: [...inferHandlerInput<TMutations[TPath]>, TRPCRequestOptions?]): CancellablePromise<import("@trpc/server").ThenArg<ReturnType<TMutations[TPath]["call"]>>>;
59
- subscription<TSubscriptions extends TRouter['_def']['subscriptions'], TPath extends string & keyof TSubscriptions, TOutput extends inferSubscriptionOutput<TRouter, TPath>, TInput extends inferProcedureInput<TSubscriptions[TPath]>>(path: TPath, input: TInput, opts: TRPCRequestOptions & ObservableCallbacks<TRPCResult<TOutput>, TRPCClientError<TRouter>>): UnsubscribeFn;
60
- }
61
- export {};
1
+ import { AnyRouter, inferHandlerInput, inferProcedureInput, inferSubscriptionOutput } from '@trpc/server';
2
+ import { TRPCResult } from '@trpc/server/rpc';
3
+ import { CancelFn } from '..';
4
+ import { HTTPHeaders, LinkRuntime, OperationContext, TRPCLink } from '../links/types';
5
+ import { Observer, Subscription } from 'rxjs';
6
+ declare type CancellablePromise<T = unknown> = Promise<T> & {
7
+ cancel: CancelFn;
8
+ };
9
+ /**
10
+ * @deprecated no longer used
11
+ */
12
+ export interface FetchOptions {
13
+ fetch?: typeof fetch;
14
+ AbortController?: typeof AbortController;
15
+ }
16
+ interface CreateTRPCClientBaseOptions {
17
+ /**
18
+ * Add ponyfill for fetch
19
+ */
20
+ fetch?: typeof fetch;
21
+ /**
22
+ * add ponyfill for AbortController
23
+ */
24
+ AbortController?: typeof AbortController;
25
+ /**
26
+ * headers to be set on outgoing requests / callback that of said headers
27
+ */
28
+ headers?: HTTPHeaders | (() => HTTPHeaders | Promise<HTTPHeaders>);
29
+ }
30
+ /** @internal */
31
+ export interface CreateTRPCClientWithURLOptions extends CreateTRPCClientBaseOptions {
32
+ /**
33
+ * HTTP URL of API
34
+ **/
35
+ url: string;
36
+ }
37
+ /** @internal */
38
+ export interface CreateTRPCClientWithLinksOptions<TRouter extends AnyRouter> extends CreateTRPCClientBaseOptions {
39
+ /**
40
+ * @link http://localhost:3000/docs/links
41
+ **/
42
+ links: TRPCLink<TRouter>[];
43
+ }
44
+ export interface TRPCRequestOptions {
45
+ /**
46
+ * Pass additional context to links
47
+ */
48
+ context?: OperationContext;
49
+ }
50
+ /** @internal */
51
+ export declare type CreateTRPCClientOptions<TRouter extends AnyRouter> = CreateTRPCClientWithLinksOptions<TRouter> | CreateTRPCClientWithURLOptions;
52
+ export declare class TRPCClient<TRouter extends AnyRouter> {
53
+ private readonly links;
54
+ readonly runtime: LinkRuntime;
55
+ constructor(opts: CreateTRPCClientOptions<TRouter>);
56
+ private $request;
57
+ private requestAsPromise;
58
+ query<TQueries extends TRouter['_def']['queries'], TPath extends string & keyof TQueries>(path: TPath, ...args: [...inferHandlerInput<TQueries[TPath]>, TRPCRequestOptions?]): CancellablePromise<import("@trpc/server").ThenArg<ReturnType<TQueries[TPath]["call"]>>>;
59
+ mutation<TMutations extends TRouter['_def']['mutations'], TPath extends string & keyof TMutations>(path: TPath, ...args: [...inferHandlerInput<TMutations[TPath]>, TRPCRequestOptions?]): CancellablePromise<import("@trpc/server").ThenArg<ReturnType<TMutations[TPath]["call"]>>>;
60
+ subscription<TSubscriptions extends TRouter['_def']['subscriptions'], TPath extends string & keyof TSubscriptions, TOutput extends inferSubscriptionOutput<TRouter, TPath>, TInput extends inferProcedureInput<TSubscriptions[TPath]>>(path: TPath, input: TInput, opts: TRPCRequestOptions & Partial<Observer<TRPCResult<TOutput>>>): Subscription;
61
+ }
62
+ export {};
62
63
  //# sourceMappingURL=TRPCClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TRPCClient.d.ts","sourceRoot":"","sources":["../../src/internals/TRPCClient.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,17 @@
1
- import { CancelFn, PromiseAndCancel } from '../links/core';
2
- declare type BatchLoadFn<TKey, TValue> = (keys: TKey[]) => {
3
- promise: Promise<TValue[]>;
4
- cancel: CancelFn;
5
- };
6
- /**
7
- * Dataloader that's very inspired by https://github.com/graphql/dataloader
8
- * Less configuration, no caching, and allows you to cancel requests
9
- * When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
10
- */
11
- export declare function dataLoader<TKey, TValue>(fetchMany: BatchLoadFn<TKey, TValue>, opts?: {
12
- maxBatchSize?: number;
13
- }): {
14
- load: (key: TKey) => PromiseAndCancel<TValue>;
15
- };
16
- export {};
1
+ import { CancelFn, PromiseAndCancel } from '../links/types';
2
+ declare type BatchLoadFn<TKey, TValue> = (keys: TKey[]) => {
3
+ promise: Promise<TValue[]>;
4
+ cancel: CancelFn;
5
+ };
6
+ /**
7
+ * Dataloader that's very inspired by https://github.com/graphql/dataloader
8
+ * Less configuration, no caching, and allows you to cancel requests
9
+ * When cancelling a single fetch the whole batch will be cancelled only when _all_ items are cancelled
10
+ */
11
+ export declare function dataLoader<TKey, TValue>(fetchMany: BatchLoadFn<TKey, TValue>, opts?: {
12
+ maxBatchSize?: number;
13
+ }): {
14
+ load: (key: TKey) => PromiseAndCancel<TValue>;
15
+ };
16
+ export {};
17
17
  //# sourceMappingURL=dataLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dataLoader.d.ts","sourceRoot":"","sources":["../../src/internals/dataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAY5D,aAAK,WAAW,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK;IACjD,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EACrC,SAAS,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EACpC,IAAI,CAAC,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE;gBA8Bb,IAAI,KAAG,iBAAiB,MAAM,CAAC;EAiDnD"}
@@ -1,3 +1,3 @@
1
- export declare function getWindow(): typeof globalThis;
2
- export declare function getAbortController(ac?: typeof AbortController): typeof AbortController | null;
1
+ export declare function getWindow(): typeof globalThis;
2
+ export declare function getAbortController(ac?: typeof AbortController): typeof AbortController | null;
3
3
  //# sourceMappingURL=fetchHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchHelpers.d.ts","sourceRoot":"","sources":["../../src/internals/fetchHelpers.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,sBAKxB;AACD,wBAAgB,kBAAkB,CAChC,EAAE,CAAC,EAAE,OAAO,eAAe,GAC1B,OAAO,eAAe,GAAG,IAAI,CAG/B"}
@@ -1,2 +1,2 @@
1
- export declare const retryDelay: (attemptIndex: number) => number;
1
+ export declare const retryDelay: (attemptIndex: number) => number;
2
2
  //# sourceMappingURL=retryDelay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryDelay.d.ts","sourceRoot":"","sources":["../../src/internals/retryDelay.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,UAAU,iBAAkB,MAAM,WACqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { AnyRouter } from '@trpc/server';
2
+ import { TRPCLink } from './types';
3
+ export declare function dedupeLink<TRouter extends AnyRouter = AnyRouter>(): TRPCLink<TRouter>;
4
+ //# sourceMappingURL=dedupeLink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dedupeLink.d.ts","sourceRoot":"","sources":["../../src/links/dedupeLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAmB,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEpD,wBAAgB,UAAU,CACxB,OAAO,SAAS,SAAS,GAAG,SAAS,KAClC,QAAQ,CAAC,OAAO,CAAC,CA8CrB"}