@trpc/client 10.33.1 → 10.34.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/TRPCClientError-8462a9bf.js +48 -0
  2. package/dist/TRPCClientError-dffb44e0.js +50 -0
  3. package/dist/TRPCClientError-fef6cf44.mjs +48 -0
  4. package/dist/TRPCClientError.d.ts +5 -1
  5. package/dist/TRPCClientError.d.ts.map +1 -1
  6. package/dist/{httpBatchLink-76c6f2d4.js → httpBatchLink-2abec973.js} +9 -4
  7. package/dist/{httpBatchLink-c64f6cdb.js → httpBatchLink-579b00eb.js} +8 -3
  8. package/dist/{httpBatchLink-c184c799.mjs → httpBatchLink-fbd7b43c.mjs} +8 -3
  9. package/dist/{httpUtils-a9242d4e.mjs → httpUtils-1efcb902.mjs} +8 -1
  10. package/dist/{httpUtils-a0ac1597.js → httpUtils-676ede95.js} +6 -1
  11. package/dist/{httpUtils-fa0d6f71.js → httpUtils-cc69e11f.js} +8 -1
  12. package/dist/index.js +6 -5
  13. package/dist/index.mjs +7 -6
  14. package/dist/links/httpBatchLink.js +4 -3
  15. package/dist/links/httpBatchLink.mjs +4 -3
  16. package/dist/links/httpLink.d.ts.map +1 -1
  17. package/dist/links/httpLink.js +10 -5
  18. package/dist/links/httpLink.mjs +9 -4
  19. package/dist/links/internals/createHTTPBatchLink.d.ts.map +1 -1
  20. package/dist/links/internals/httpUtils.d.ts +1 -0
  21. package/dist/links/internals/httpUtils.d.ts.map +1 -1
  22. package/dist/links/wsLink.js +4 -3
  23. package/dist/links/wsLink.mjs +2 -1
  24. package/dist/shared/index.js +1 -1
  25. package/dist/shared/index.mjs +1 -1
  26. package/dist/shared/transformResult.d.ts.map +1 -1
  27. package/dist/{transformResult-70f95ffb.js → transformResult-26a22823.js} +8 -38
  28. package/dist/{transformResult-9a244fe7.mjs → transformResult-7ab522e6.mjs} +9 -38
  29. package/dist/{transformResult-ae8e970c.js → transformResult-82684494.js} +9 -36
  30. package/package.json +4 -4
  31. package/src/TRPCClientError.ts +26 -3
  32. package/src/links/httpLink.ts +5 -2
  33. package/src/links/internals/createHTTPBatchLink.ts +7 -1
  34. package/src/links/internals/httpUtils.ts +6 -1
  35. package/src/shared/transformResult.ts +9 -4
@@ -0,0 +1,48 @@
1
+ function isTRPCClientError(cause) {
2
+ return (cause instanceof TRPCClientError ||
3
+ /**
4
+ * @deprecated
5
+ * Delete in next major
6
+ */
7
+ cause.name === 'TRPCClientError');
8
+ }
9
+ class TRPCClientError extends Error {
10
+ constructor(message, opts) {
11
+ const cause = opts?.cause;
12
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
13
+ // @ts-ignore https://github.com/tc39/proposal-error-cause
14
+ super(message, { cause });
15
+ this.meta = opts?.meta;
16
+ this.cause = cause;
17
+ this.shape = opts?.result?.error;
18
+ this.data = opts?.result?.error.data;
19
+ this.name = 'TRPCClientError';
20
+ Object.setPrototypeOf(this, TRPCClientError.prototype);
21
+ }
22
+ static from(cause, opts = {}) {
23
+ if (!(cause instanceof Error)) {
24
+ return new TRPCClientError(cause.error.message ?? '', {
25
+ ...opts,
26
+ cause: undefined,
27
+ result: cause,
28
+ });
29
+ }
30
+ if (isTRPCClientError(cause)) {
31
+ if (opts.meta) {
32
+ // Decorate with meta error data
33
+ cause.meta = {
34
+ ...cause.meta,
35
+ ...opts.meta,
36
+ };
37
+ }
38
+ return cause;
39
+ }
40
+ return new TRPCClientError(cause.message, {
41
+ ...opts,
42
+ cause,
43
+ result: null,
44
+ });
45
+ }
46
+ }
47
+
48
+ export { TRPCClientError as T };
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ function isTRPCClientError(cause) {
4
+ return cause instanceof TRPCClientError || /**
5
+ * @deprecated
6
+ * Delete in next major
7
+ */ cause.name === 'TRPCClientError';
8
+ }
9
+ class TRPCClientError extends Error {
10
+ static from(cause, opts = {}) {
11
+ if (!(cause instanceof Error)) {
12
+ return new TRPCClientError(cause.error.message ?? '', {
13
+ ...opts,
14
+ cause: undefined,
15
+ result: cause
16
+ });
17
+ }
18
+ if (isTRPCClientError(cause)) {
19
+ if (opts.meta) {
20
+ // Decorate with meta error data
21
+ cause.meta = {
22
+ ...cause.meta,
23
+ ...opts.meta
24
+ };
25
+ }
26
+ return cause;
27
+ }
28
+ return new TRPCClientError(cause.message, {
29
+ ...opts,
30
+ cause,
31
+ result: null
32
+ });
33
+ }
34
+ constructor(message, opts){
35
+ const cause = opts?.cause;
36
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
37
+ // @ts-ignore https://github.com/tc39/proposal-error-cause
38
+ super(message, {
39
+ cause
40
+ });
41
+ this.meta = opts?.meta;
42
+ this.cause = cause;
43
+ this.shape = opts?.result?.error;
44
+ this.data = opts?.result?.error.data;
45
+ this.name = 'TRPCClientError';
46
+ Object.setPrototypeOf(this, TRPCClientError.prototype);
47
+ }
48
+ }
49
+
50
+ exports.TRPCClientError = TRPCClientError;
@@ -0,0 +1,48 @@
1
+ function isTRPCClientError(cause) {
2
+ return cause instanceof TRPCClientError || /**
3
+ * @deprecated
4
+ * Delete in next major
5
+ */ cause.name === 'TRPCClientError';
6
+ }
7
+ class TRPCClientError extends Error {
8
+ static from(cause, opts = {}) {
9
+ if (!(cause instanceof Error)) {
10
+ return new TRPCClientError(cause.error.message ?? '', {
11
+ ...opts,
12
+ cause: undefined,
13
+ result: cause
14
+ });
15
+ }
16
+ if (isTRPCClientError(cause)) {
17
+ if (opts.meta) {
18
+ // Decorate with meta error data
19
+ cause.meta = {
20
+ ...cause.meta,
21
+ ...opts.meta
22
+ };
23
+ }
24
+ return cause;
25
+ }
26
+ return new TRPCClientError(cause.message, {
27
+ ...opts,
28
+ cause,
29
+ result: null
30
+ });
31
+ }
32
+ constructor(message, opts){
33
+ const cause = opts?.cause;
34
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
35
+ // @ts-ignore https://github.com/tc39/proposal-error-cause
36
+ super(message, {
37
+ cause
38
+ });
39
+ this.meta = opts?.meta;
40
+ this.cause = cause;
41
+ this.shape = opts?.result?.error;
42
+ this.data = opts?.result?.error.data;
43
+ this.name = 'TRPCClientError';
44
+ Object.setPrototypeOf(this, TRPCClientError.prototype);
45
+ }
46
+ }
47
+
48
+ export { TRPCClientError as T };
@@ -12,7 +12,11 @@ export declare class TRPCClientError<TRouterOrProcedure extends ErrorInferrable>
12
12
  readonly cause: Error | undefined;
13
13
  readonly shape: Maybe<inferErrorShape<TRouterOrProcedure>>;
14
14
  readonly data: Maybe<inferErrorShape<TRouterOrProcedure>['data']>;
15
- readonly meta: Record<string, unknown> | undefined;
15
+ /**
16
+ * Additional meta data about the error
17
+ * In the case of HTTP-errors, we'll have `response` and potentially `responseJSON` here
18
+ */
19
+ meta: Record<string, unknown> | undefined;
16
20
  constructor(message: string, opts?: {
17
21
  result?: Maybe<inferErrorShape<TRouterOrProcedure>>;
18
22
  cause?: Error;
@@ -1 +1 @@
1
- {"version":3,"file":"TRPCClientError.d.ts","sourceRoot":"","sources":["../src/TRPCClientError.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,EACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE,KAAK,eAAe,GAAG,YAAY,GAAG,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAEzE,KAAK,eAAe,CAAC,WAAW,SAAS,eAAe,IACtD,WAAW,SAAS,SAAS,GACzB,gBAAgB,CAAC,WAAW,CAAC,GAC7B,WAAW,SAAS,YAAY,GAChC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GACtD,WAAW,CAAC;AAElB,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,iBAAiB;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;CACtC;AACD,MAAM,MAAM,mBAAmB,CAAC,kBAAkB,SAAS,eAAe,IACxE,mBAAmB,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAE3D,qBAAa,eAAe,CAAC,kBAAkB,SAAS,eAAe,CACrE,SAAQ,KACR,YAAW,mBAAmB,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEnE,SAAgB,KAAK,oBAAC;IACtB,SAAgB,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAClE,SAAgB,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,SAAgB,IAAI,sCAAC;gBAGnB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACpD,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC;WAkBW,IAAI,CAAC,kBAAkB,SAAS,eAAe,EAC3D,KAAK,EAAE,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,EACrC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAO,GAC5C,eAAe,CAAC,kBAAkB,CAAC;CAqBvC"}
1
+ {"version":3,"file":"TRPCClientError.d.ts","sourceRoot":"","sources":["../src/TRPCClientError.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,SAAS,EACT,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,EACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAErE,KAAK,eAAe,GAAG,YAAY,GAAG,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;AAEzE,KAAK,eAAe,CAAC,WAAW,SAAS,eAAe,IACtD,WAAW,SAAS,SAAS,GACzB,gBAAgB,CAAC,WAAW,CAAC,GAC7B,WAAW,SAAS,YAAY,GAChC,WAAW,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,GACtD,WAAW,CAAC;AAElB,MAAM,WAAW,mBAAmB,CAAC,MAAM,SAAS,iBAAiB;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;CACtC;AACD,MAAM,MAAM,mBAAmB,CAAC,kBAAkB,SAAS,eAAe,IACxE,mBAAmB,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAa3D,qBAAa,eAAe,CAAC,kBAAkB,SAAS,eAAe,CACrE,SAAQ,KACR,YAAW,mBAAmB,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC;IAEnE,SAAgB,KAAK,oBAAC;IACtB,SAAgB,KAAK,EAAE,KAAK,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAClE,SAAgB,IAAI,EAAE,KAAK,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEzE;;;OAGG;IACI,IAAI,sCAAC;gBAGV,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACpD,KAAK,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC;WAkBW,IAAI,CAAC,kBAAkB,SAAS,eAAe,EAC3D,KAAK,EAAE,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,EACrC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAO,GAC5C,eAAe,CAAC,kBAAkB,CAAC;CA4BvC"}
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var observable = require('@trpc/server/observable');
4
- var transformResult = require('./transformResult-70f95ffb.js');
5
- var httpUtils = require('./httpUtils-fa0d6f71.js');
4
+ var transformResult = require('./transformResult-26a22823.js');
5
+ var TRPCClientError = require('./TRPCClientError-dffb44e0.js');
6
+ var httpUtils = require('./httpUtils-cc69e11f.js');
6
7
 
7
8
  /* eslint-disable @typescript-eslint/no-non-null-assertion */ /**
8
9
  * A function that should never be called unless we messed something up.
@@ -182,10 +183,12 @@ var httpUtils = require('./httpUtils-fa0d6f71.js');
182
183
  return observable.observable((observer)=>{
183
184
  const loader = loaders[op.type];
184
185
  const { promise , cancel } = loader.load(op);
186
+ let _res = undefined;
185
187
  promise.then((res)=>{
188
+ _res = res;
186
189
  const transformed = transformResult.transformResult(res.json, runtime);
187
190
  if (!transformed.ok) {
188
- observer.error(transformResult.TRPCClientError.from(transformed.error, {
191
+ observer.error(TRPCClientError.TRPCClientError.from(transformed.error, {
189
192
  meta: res.meta
190
193
  }));
191
194
  return;
@@ -196,7 +199,9 @@ var httpUtils = require('./httpUtils-fa0d6f71.js');
196
199
  });
197
200
  observer.complete();
198
201
  }).catch((err)=>{
199
- observer.error(transformResult.TRPCClientError.from(err));
202
+ observer.error(TRPCClientError.TRPCClientError.from(err, {
203
+ meta: _res?.meta
204
+ }));
200
205
  });
201
206
  return ()=>{
202
207
  cancel();
@@ -1,6 +1,7 @@
1
1
  import { observable } from '@trpc/server/observable';
2
- import { t as transformResult, T as TRPCClientError } from './transformResult-ae8e970c.js';
3
- import { r as resolveHTTPLinkOptions, g as getUrl, j as jsonHttpRequester } from './httpUtils-a0ac1597.js';
2
+ import { t as transformResult } from './transformResult-82684494.js';
3
+ import { T as TRPCClientError } from './TRPCClientError-8462a9bf.js';
4
+ import { r as resolveHTTPLinkOptions, g as getUrl, j as jsonHttpRequester } from './httpUtils-676ede95.js';
4
5
 
5
6
  /**
6
7
  * A function that should never be called unless we messed something up.
@@ -175,8 +176,10 @@ function createHTTPBatchLink(requester) {
175
176
  return observable((observer) => {
176
177
  const loader = loaders[op.type];
177
178
  const { promise, cancel } = loader.load(op);
179
+ let _res = undefined;
178
180
  promise
179
181
  .then((res) => {
182
+ _res = res;
180
183
  const transformed = transformResult(res.json, runtime);
181
184
  if (!transformed.ok) {
182
185
  observer.error(TRPCClientError.from(transformed.error, {
@@ -191,7 +194,9 @@ function createHTTPBatchLink(requester) {
191
194
  observer.complete();
192
195
  })
193
196
  .catch((err) => {
194
- observer.error(TRPCClientError.from(err));
197
+ observer.error(TRPCClientError.from(err, {
198
+ meta: _res?.meta,
199
+ }));
195
200
  });
196
201
  return () => {
197
202
  cancel();
@@ -1,6 +1,7 @@
1
1
  import { observable } from '@trpc/server/observable';
2
- import { t as transformResult, T as TRPCClientError } from './transformResult-9a244fe7.mjs';
3
- import { r as resolveHTTPLinkOptions, g as getUrl, j as jsonHttpRequester } from './httpUtils-a9242d4e.mjs';
2
+ import { t as transformResult } from './transformResult-7ab522e6.mjs';
3
+ import { T as TRPCClientError } from './TRPCClientError-fef6cf44.mjs';
4
+ import { r as resolveHTTPLinkOptions, g as getUrl, j as jsonHttpRequester } from './httpUtils-1efcb902.mjs';
4
5
 
5
6
  /* eslint-disable @typescript-eslint/no-non-null-assertion */ /**
6
7
  * A function that should never be called unless we messed something up.
@@ -180,7 +181,9 @@ import { r as resolveHTTPLinkOptions, g as getUrl, j as jsonHttpRequester } from
180
181
  return observable((observer)=>{
181
182
  const loader = loaders[op.type];
182
183
  const { promise , cancel } = loader.load(op);
184
+ let _res = undefined;
183
185
  promise.then((res)=>{
186
+ _res = res;
184
187
  const transformed = transformResult(res.json, runtime);
185
188
  if (!transformed.ok) {
186
189
  observer.error(TRPCClientError.from(transformed.error, {
@@ -194,7 +197,9 @@ import { r as resolveHTTPLinkOptions, g as getUrl, j as jsonHttpRequester } from
194
197
  });
195
198
  observer.complete();
196
199
  }).catch((err)=>{
197
- observer.error(TRPCClientError.from(err));
200
+ observer.error(TRPCClientError.from(err, {
201
+ meta: _res?.meta
202
+ }));
198
203
  });
199
204
  return ()=>{
200
205
  cancel();
@@ -1,3 +1,5 @@
1
+ import { T as TRPCClientError } from './TRPCClientError-fef6cf44.mjs';
2
+
1
3
  const isFunction = (fn)=>typeof fn === 'function';
2
4
  function getFetch(customFetchImpl) {
3
5
  if (customFetchImpl) {
@@ -112,11 +114,16 @@ function httpRequest(opts) {
112
114
  meta.response = _res;
113
115
  return _res.json();
114
116
  }).then((json)=>{
117
+ meta.responseJSON = json;
115
118
  resolve({
116
119
  json: json,
117
120
  meta
118
121
  });
119
- }).catch(reject);
122
+ }).catch((err)=>{
123
+ reject(TRPCClientError.from(err, {
124
+ meta
125
+ }));
126
+ });
120
127
  });
121
128
  const cancel = ()=>{
122
129
  ac?.abort();
@@ -1,3 +1,5 @@
1
+ import { T as TRPCClientError } from './TRPCClientError-8462a9bf.js';
2
+
1
3
  const isFunction = (fn) => typeof fn === 'function';
2
4
  function getFetch(customFetchImpl) {
3
5
  if (customFetchImpl) {
@@ -117,12 +119,15 @@ function httpRequest(opts) {
117
119
  return _res.json();
118
120
  })
119
121
  .then((json) => {
122
+ meta.responseJSON = json;
120
123
  resolve({
121
124
  json: json,
122
125
  meta,
123
126
  });
124
127
  })
125
- .catch(reject);
128
+ .catch((err) => {
129
+ reject(TRPCClientError.from(err, { meta }));
130
+ });
126
131
  });
127
132
  const cancel = () => {
128
133
  ac?.abort();
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var TRPCClientError = require('./TRPCClientError-dffb44e0.js');
4
+
3
5
  const isFunction = (fn)=>typeof fn === 'function';
4
6
  function getFetch(customFetchImpl) {
5
7
  if (customFetchImpl) {
@@ -114,11 +116,16 @@ function httpRequest(opts) {
114
116
  meta.response = _res;
115
117
  return _res.json();
116
118
  }).then((json)=>{
119
+ meta.responseJSON = json;
117
120
  resolve({
118
121
  json: json,
119
122
  meta
120
123
  });
121
- }).catch(reject);
124
+ }).catch((err)=>{
125
+ reject(TRPCClientError.TRPCClientError.from(err, {
126
+ meta
127
+ }));
128
+ });
122
129
  });
123
130
  const cancel = ()=>{
124
131
  ac?.abort();
package/dist/index.js CHANGED
@@ -4,13 +4,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var observable = require('@trpc/server/observable');
6
6
  var links_splitLink = require('./splitLink-f29e84be.js');
7
- var transformResult = require('./transformResult-70f95ffb.js');
7
+ var TRPCClientError = require('./TRPCClientError-dffb44e0.js');
8
8
  var shared = require('@trpc/server/shared');
9
- var httpUtils = require('./httpUtils-fa0d6f71.js');
10
- var links_httpBatchLink = require('./httpBatchLink-76c6f2d4.js');
9
+ var httpUtils = require('./httpUtils-cc69e11f.js');
10
+ var links_httpBatchLink = require('./httpBatchLink-2abec973.js');
11
11
  var links_httpLink = require('./links/httpLink.js');
12
12
  var links_loggerLink = require('./links/loggerLink.js');
13
13
  var links_wsLink = require('./links/wsLink.js');
14
+ require('./transformResult-26a22823.js');
14
15
 
15
16
  class TRPCUntypedClient {
16
17
  $request({ type , input , path , context ={} }) {
@@ -34,7 +35,7 @@ class TRPCUntypedClient {
34
35
  promise.then((envelope)=>{
35
36
  resolve(envelope.result.data);
36
37
  }).catch((err)=>{
37
- reject(transformResult.TRPCClientError.from(err));
38
+ reject(TRPCClientError.TRPCClientError.from(err));
38
39
  });
39
40
  });
40
41
  return abortablePromise;
@@ -359,7 +360,7 @@ const experimental_formDataLink = links_httpLink.httpLinkFactory({
359
360
  });
360
361
 
361
362
  exports.splitLink = links_splitLink.splitLink;
362
- exports.TRPCClientError = transformResult.TRPCClientError;
363
+ exports.TRPCClientError = TRPCClientError.TRPCClientError;
363
364
  exports.getFetch = httpUtils.getFetch;
364
365
  exports.httpBatchLink = links_httpBatchLink.httpBatchLink;
365
366
  exports.httpLink = links_httpLink.httpLink;
package/dist/index.mjs CHANGED
@@ -1,17 +1,18 @@
1
1
  import { share, observableToPromise } from '@trpc/server/observable';
2
2
  import { c as createChain } from './splitLink-4c75f7be.mjs';
3
3
  export { s as splitLink } from './splitLink-4c75f7be.mjs';
4
- import { T as TRPCClientError } from './transformResult-9a244fe7.mjs';
5
- export { T as TRPCClientError } from './transformResult-9a244fe7.mjs';
4
+ import { T as TRPCClientError } from './TRPCClientError-fef6cf44.mjs';
5
+ export { T as TRPCClientError } from './TRPCClientError-fef6cf44.mjs';
6
6
  import { createFlatProxy, createRecursiveProxy } from '@trpc/server/shared';
7
- import { f as fetchHTTPResponse, g as getUrl, a as getBody$1, h as httpRequest } from './httpUtils-a9242d4e.mjs';
8
- export { b as getFetch } from './httpUtils-a9242d4e.mjs';
9
- import { c as createHTTPBatchLink } from './httpBatchLink-c184c799.mjs';
10
- export { h as httpBatchLink } from './httpBatchLink-c184c799.mjs';
7
+ import { f as fetchHTTPResponse, g as getUrl, a as getBody$1, h as httpRequest } from './httpUtils-1efcb902.mjs';
8
+ export { b as getFetch } from './httpUtils-1efcb902.mjs';
9
+ import { c as createHTTPBatchLink } from './httpBatchLink-fbd7b43c.mjs';
10
+ export { h as httpBatchLink } from './httpBatchLink-fbd7b43c.mjs';
11
11
  import { httpLinkFactory } from './links/httpLink.mjs';
12
12
  export { httpLink, httpLinkFactory } from './links/httpLink.mjs';
13
13
  export { loggerLink } from './links/loggerLink.mjs';
14
14
  export { createWSClient, wsLink } from './links/wsLink.mjs';
15
+ import './transformResult-7ab522e6.mjs';
15
16
 
16
17
  class TRPCUntypedClient {
17
18
  $request({ type , input , path , context ={} }) {
@@ -2,10 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var links_httpBatchLink = require('../httpBatchLink-76c6f2d4.js');
6
- require('../httpUtils-fa0d6f71.js');
5
+ var links_httpBatchLink = require('../httpBatchLink-2abec973.js');
6
+ require('../httpUtils-cc69e11f.js');
7
7
  require('@trpc/server/observable');
8
- require('../transformResult-70f95ffb.js');
8
+ require('../transformResult-26a22823.js');
9
+ require('../TRPCClientError-dffb44e0.js');
9
10
 
10
11
 
11
12
 
@@ -1,4 +1,5 @@
1
- export { h as httpBatchLink } from '../httpBatchLink-c184c799.mjs';
2
- import '../httpUtils-a9242d4e.mjs';
1
+ export { h as httpBatchLink } from '../httpBatchLink-fbd7b43c.mjs';
2
+ import '../httpUtils-1efcb902.mjs';
3
3
  import '@trpc/server/observable';
4
- import '../transformResult-9a244fe7.mjs';
4
+ import '../transformResult-7ab522e6.mjs';
5
+ import '../TRPCClientError-fef6cf44.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"httpLink.d.ts","sourceRoot":"","sources":["../../src/links/httpLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,EACL,mBAAmB,EAEnB,SAAS,EAEV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE3D,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D;;;OAGG;IACH,OAAO,CAAC,EACJ,WAAW,GACX,CAAC,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,SAAS,CAAA;KAAE,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;CACvE;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,qCAE3D,eAAe,uBAqDxB;AAED,eAAO,MAAM,QAAQ,oCAvDX,eAAe,sBAuDgD,CAAC"}
1
+ {"version":3,"file":"httpLink.d.ts","sourceRoot":"","sources":["../../src/links/httpLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,OAAO,EACL,mBAAmB,EAGnB,SAAS,EAEV,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE3D,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IAC1D;;;OAGG;IACH,OAAO,CAAC,EACJ,WAAW,GACX,CAAC,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,SAAS,CAAA;KAAE,KAAK,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;CACvE;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE;IAAE,SAAS,EAAE,SAAS,CAAA;CAAE,qCAE3D,eAAe,uBAuDxB;AAED,eAAO,MAAM,QAAQ,oCAzDX,eAAe,sBAyDgD,CAAC"}
@@ -3,8 +3,9 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var observable = require('@trpc/server/observable');
6
- var transformResult = require('../transformResult-70f95ffb.js');
7
- var httpUtils = require('../httpUtils-fa0d6f71.js');
6
+ var transformResult = require('../transformResult-26a22823.js');
7
+ var TRPCClientError = require('../TRPCClientError-dffb44e0.js');
8
+ var httpUtils = require('../httpUtils-cc69e11f.js');
8
9
 
9
10
  function httpLinkFactory(factoryOpts) {
10
11
  return (opts)=>{
@@ -29,11 +30,13 @@ function httpLinkFactory(factoryOpts) {
29
30
  return opts.headers;
30
31
  }
31
32
  });
33
+ let meta = undefined;
32
34
  promise.then((res)=>{
35
+ meta = res.meta;
33
36
  const transformed = transformResult.transformResult(res.json, runtime);
34
37
  if (!transformed.ok) {
35
- observer.error(transformResult.TRPCClientError.from(transformed.error, {
36
- meta: res.meta
38
+ observer.error(TRPCClientError.TRPCClientError.from(transformed.error, {
39
+ meta
37
40
  }));
38
41
  return;
39
42
  }
@@ -43,7 +46,9 @@ function httpLinkFactory(factoryOpts) {
43
46
  });
44
47
  observer.complete();
45
48
  }).catch((cause)=>{
46
- observer.error(transformResult.TRPCClientError.from(cause));
49
+ observer.error(TRPCClientError.TRPCClientError.from(cause, {
50
+ meta
51
+ }));
47
52
  });
48
53
  return ()=>{
49
54
  cancel();
@@ -1,6 +1,7 @@
1
1
  import { observable } from '@trpc/server/observable';
2
- import { t as transformResult, T as TRPCClientError } from '../transformResult-9a244fe7.mjs';
3
- import { r as resolveHTTPLinkOptions, j as jsonHttpRequester } from '../httpUtils-a9242d4e.mjs';
2
+ import { t as transformResult } from '../transformResult-7ab522e6.mjs';
3
+ import { T as TRPCClientError } from '../TRPCClientError-fef6cf44.mjs';
4
+ import { r as resolveHTTPLinkOptions, j as jsonHttpRequester } from '../httpUtils-1efcb902.mjs';
4
5
 
5
6
  function httpLinkFactory(factoryOpts) {
6
7
  return (opts)=>{
@@ -25,11 +26,13 @@ function httpLinkFactory(factoryOpts) {
25
26
  return opts.headers;
26
27
  }
27
28
  });
29
+ let meta = undefined;
28
30
  promise.then((res)=>{
31
+ meta = res.meta;
29
32
  const transformed = transformResult(res.json, runtime);
30
33
  if (!transformed.ok) {
31
34
  observer.error(TRPCClientError.from(transformed.error, {
32
- meta: res.meta
35
+ meta
33
36
  }));
34
37
  return;
35
38
  }
@@ -39,7 +42,9 @@ function httpLinkFactory(factoryOpts) {
39
42
  });
40
43
  observer.complete();
41
44
  }).catch((cause)=>{
42
- observer.error(TRPCClientError.from(cause));
45
+ observer.error(TRPCClientError.from(cause, {
46
+ meta
47
+ }));
43
48
  });
44
49
  return ()=>{
45
50
  cancel();
@@ -1 +1 @@
1
- {"version":3,"file":"createHTTPBatchLink.d.ts","sourceRoot":"","sources":["../../../src/links/internals/createHTTPBatchLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAKxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAEL,UAAU,EACV,uBAAuB,EAExB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,oBAAoB,IAAI,CAC/D,aAAa,EAAE,uBAAuB,GAAG;IACvC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB,KACE,CACH,QAAQ,EAAE,SAAS,EAAE,EACrB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,IAAI,KAClE;IACH,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/B,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,oBAAoB,EACvE,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,qCAGxB,QAAQ,uBAgFjB"}
1
+ {"version":3,"file":"createHTTPBatchLink.d.ts","sourceRoot":"","sources":["../../../src/links/internals/createHTTPBatchLink.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAKxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC5E,OAAO,EAEL,UAAU,EACV,uBAAuB,EAExB,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,QAAQ,SAAS,oBAAoB,IAAI,CAC/D,aAAa,EAAE,uBAAuB,GAAG;IACvC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB,KACE,CACH,QAAQ,EAAE,SAAS,EAAE,EACrB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,KAAK,IAAI,KAClE;IACH,OAAO,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC/B,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,SAAS,oBAAoB,EACvE,SAAS,EAAE,WAAW,CAAC,QAAQ,CAAC,qCAGxB,QAAQ,uBAsFjB"}
@@ -27,6 +27,7 @@ export interface HTTPResult {
27
27
  json: TRPCResponse;
28
28
  meta: {
29
29
  response: ResponseEsque;
30
+ responseJSON?: unknown;
30
31
  };
31
32
  }
32
33
  type GetInputOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"httpUtils.d.ts","sourceRoot":"","sources":["../../../src/links/internals/httpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,UAAU,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,eAAe,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC9C;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,mBAAmB,GACxB,uBAAuB,CAMzB;AAiBD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE;QACJ,QAAQ,EAAE,aAAa,CAAC;KACzB,CAAC;CACH;AAED,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,iBAAiB,CAAC;CAC5B,GAAG,CAAC;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAAC;AAUjD,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAClD,uBAAuB,GAAG;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEJ,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,sBAAsB,KAAK,MAAM,CAAC;AAC9D,MAAM,MAAM,OAAO,GAAG,CACpB,IAAI,EAAE,sBAAsB,KACzB,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE9B,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAgBpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,CACtB,IAAI,EAAE,sBAAsB,GAAG;IAC7B,OAAO,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACnD,KACE,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAElC,eAAO,MAAM,iBAAiB,EAAE,SAO/B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAC7C,sBAAsB,GAAG;IACvB,OAAO,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC,CAAC;AAEJ,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,kBAAkB,EACxB,EAAE,CAAC,EAAE,4BAA4B,GAAG,IAAI,0BA0BzC;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,kBAAkB,GACvB,gBAAgB,CAAC,UAAU,CAAC,CAsB9B"}
1
+ {"version":3,"file":"httpUtils.d.ts","sourceRoot":"","sources":["../../../src/links/internals/httpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,UAAU,EACV,gBAAgB,EAChB,aAAa,EACd,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ;;OAEG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB;;OAEG;IACH,eAAe,CAAC,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,eAAe,EAAE,oBAAoB,GAAG,IAAI,CAAC;CAC9C;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,mBAAmB,GACxB,uBAAuB,CAMzB;AAiBD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE;QACJ,QAAQ,EAAE,aAAa,CAAC;QACxB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH;AAED,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,iBAAiB,CAAC;CAC5B,GAAG,CAAC;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,OAAO,EAAE,CAAA;CAAE,CAAC,CAAC;AAUjD,MAAM,MAAM,sBAAsB,GAAG,eAAe,GAClD,uBAAuB,GAAG;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEJ,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE,sBAAsB,KAAK,MAAM,CAAC;AAC9D,MAAM,MAAM,OAAO,GAAG,CACpB,IAAI,EAAE,sBAAsB,KACzB,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE9B,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,MAgBpB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,OAMrB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,CACtB,IAAI,EAAE,sBAAsB,GAAG;IAC7B,OAAO,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;CACnD,KACE,gBAAgB,CAAC,UAAU,CAAC,CAAC;AAElC,eAAO,MAAM,iBAAiB,EAAE,SAO/B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,cAAc,GAC7C,sBAAsB,GAAG;IACvB,OAAO,EAAE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAClD,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC,CAAC;AAEJ,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,kBAAkB,EACxB,EAAE,CAAC,EAAE,4BAA4B,GAAG,IAAI,0BA0BzC;AAED,wBAAgB,WAAW,CACzB,IAAI,EAAE,kBAAkB,GACvB,gBAAgB,CAAC,UAAU,CAAC,CAyB9B"}
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var observable = require('@trpc/server/observable');
6
- var transformResult = require('../transformResult-70f95ffb.js');
6
+ var transformResult = require('../transformResult-26a22823.js');
7
+ var TRPCClientError = require('../TRPCClientError-dffb44e0.js');
7
8
 
8
9
  /* istanbul ignore next -- @preserve */ const retryDelay = (attemptIndex)=>attemptIndex === 0 ? 0 : Math.min(1000 * 2 ** attemptIndex, 30000);
9
10
 
@@ -169,7 +170,7 @@ function createWSClient(opts) {
169
170
  } else {
170
171
  // Queries and mutations will error if interrupted
171
172
  delete pendingRequests[key];
172
- req.callbacks.error?.(transformResult.TRPCClientError.from(new TRPCWebSocketClosedError('WebSocket closed prematurely')));
173
+ req.callbacks.error?.(TRPCClientError.TRPCClientError.from(new TRPCWebSocketClosedError('WebSocket closed prematurely')));
173
174
  }
174
175
  }
175
176
  });
@@ -254,7 +255,7 @@ function wsLink(opts) {
254
255
  next (message) {
255
256
  const transformed = transformResult.transformResult(message, runtime);
256
257
  if (!transformed.ok) {
257
- observer.error(transformResult.TRPCClientError.from(transformed.error));
258
+ observer.error(TRPCClientError.TRPCClientError.from(transformed.error));
258
259
  return;
259
260
  }
260
261
  observer.next({
@@ -1,5 +1,6 @@
1
1
  import { observable } from '@trpc/server/observable';
2
- import { T as TRPCClientError, t as transformResult } from '../transformResult-9a244fe7.mjs';
2
+ import { t as transformResult } from '../transformResult-7ab522e6.mjs';
3
+ import { T as TRPCClientError } from '../TRPCClientError-fef6cf44.mjs';
3
4
 
4
5
  /* istanbul ignore next -- @preserve */ const retryDelay = (attemptIndex)=>attemptIndex === 0 ? 0 : Math.min(1000 * 2 ** attemptIndex, 30000);
5
6
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var transformResult = require('../transformResult-70f95ffb.js');
5
+ var transformResult = require('../transformResult-26a22823.js');
6
6
 
7
7
 
8
8
 
@@ -1 +1 @@
1
- export { t as transformResult } from '../transformResult-9a244fe7.mjs';
1
+ export { t as transformResult } from '../transformResult-7ab522e6.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"transformResult.d.ts","sourceRoot":"","sources":["../../src/shared/transformResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAOlD,gBAAgB;AAChB,iBAAS,oBAAoB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,EAC9D,QAAQ,EACJ,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAChD,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAC3D,OAAO,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;EAuB3B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,EAChE,QAAQ,EACJ,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAChD,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAC3D,OAAO,EAAE,iBAAiB,GACzB,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAqBzC"}
1
+ {"version":3,"file":"transformResult.d.ts","sourceRoot":"","sources":["../../src/shared/transformResult.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EACV,YAAY,EACZ,mBAAmB,EAEpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAMlD,gBAAgB;AAChB,iBAAS,oBAAoB,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,EAC9D,QAAQ,EACJ,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAChD,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAC3D,OAAO,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;EAuB3B;AAQD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAS,SAAS,EAAE,OAAO,EAChE,QAAQ,EACJ,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAChD,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAC3D,OAAO,EAAE,iBAAiB,GACzB,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAqBzC"}
@@ -1,39 +1,5 @@
1
1
  'use strict';
2
2
 
3
- class TRPCClientError extends Error {
4
- static from(cause, opts = {}) {
5
- if (!(cause instanceof Error)) {
6
- return new TRPCClientError(cause.error.message ?? '', {
7
- ...opts,
8
- cause: undefined,
9
- result: cause
10
- });
11
- }
12
- if (cause.name === 'TRPCClientError') {
13
- return cause;
14
- }
15
- return new TRPCClientError(cause.message, {
16
- ...opts,
17
- cause,
18
- result: null
19
- });
20
- }
21
- constructor(message, opts){
22
- const cause = opts?.cause;
23
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
24
- // @ts-ignore https://github.com/tc39/proposal-error-cause
25
- super(message, {
26
- cause
27
- });
28
- this.meta = opts?.meta;
29
- this.cause = cause;
30
- this.shape = opts?.result?.error;
31
- this.data = opts?.result?.error.data;
32
- this.name = 'TRPCClientError';
33
- Object.setPrototypeOf(this, TRPCClientError.prototype);
34
- }
35
- }
36
-
37
3
  function isObject(value) {
38
4
  // check that value is object
39
5
  return !!value && !Array.isArray(value) && typeof value === 'object';
@@ -65,6 +31,11 @@ function isObject(value) {
65
31
  result
66
32
  };
67
33
  }
34
+ class TransformResultError extends Error {
35
+ constructor(){
36
+ super('Unable to transform response from server');
37
+ }
38
+ }
68
39
  /**
69
40
  * Transforms and validates that the result is a valid TRPCResponse
70
41
  * @internal
@@ -74,17 +45,16 @@ function isObject(value) {
74
45
  // Use the data transformers on the JSON-response
75
46
  result = transformResultInner(response, runtime);
76
47
  } catch (err) {
77
- throw new TRPCClientError('Unable to transform response from server');
48
+ throw new TransformResultError();
78
49
  }
79
50
  // check that output of the transformers is a valid TRPCResponse
80
51
  if (!result.ok && (!isObject(result.error.error) || typeof result.error.error.code !== 'number')) {
81
- throw new TRPCClientError('Badly formatted response from server');
52
+ throw new TransformResultError();
82
53
  }
83
54
  if (result.ok && !isObject(result.result)) {
84
- throw new TRPCClientError('Badly formatted response from server');
55
+ throw new TransformResultError();
85
56
  }
86
57
  return result;
87
58
  }
88
59
 
89
- exports.TRPCClientError = TRPCClientError;
90
60
  exports.transformResult = transformResult;
@@ -1,37 +1,3 @@
1
- class TRPCClientError extends Error {
2
- static from(cause, opts = {}) {
3
- if (!(cause instanceof Error)) {
4
- return new TRPCClientError(cause.error.message ?? '', {
5
- ...opts,
6
- cause: undefined,
7
- result: cause
8
- });
9
- }
10
- if (cause.name === 'TRPCClientError') {
11
- return cause;
12
- }
13
- return new TRPCClientError(cause.message, {
14
- ...opts,
15
- cause,
16
- result: null
17
- });
18
- }
19
- constructor(message, opts){
20
- const cause = opts?.cause;
21
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
22
- // @ts-ignore https://github.com/tc39/proposal-error-cause
23
- super(message, {
24
- cause
25
- });
26
- this.meta = opts?.meta;
27
- this.cause = cause;
28
- this.shape = opts?.result?.error;
29
- this.data = opts?.result?.error.data;
30
- this.name = 'TRPCClientError';
31
- Object.setPrototypeOf(this, TRPCClientError.prototype);
32
- }
33
- }
34
-
35
1
  function isObject(value) {
36
2
  // check that value is object
37
3
  return !!value && !Array.isArray(value) && typeof value === 'object';
@@ -63,6 +29,11 @@ function isObject(value) {
63
29
  result
64
30
  };
65
31
  }
32
+ class TransformResultError extends Error {
33
+ constructor(){
34
+ super('Unable to transform response from server');
35
+ }
36
+ }
66
37
  /**
67
38
  * Transforms and validates that the result is a valid TRPCResponse
68
39
  * @internal
@@ -72,16 +43,16 @@ function isObject(value) {
72
43
  // Use the data transformers on the JSON-response
73
44
  result = transformResultInner(response, runtime);
74
45
  } catch (err) {
75
- throw new TRPCClientError('Unable to transform response from server');
46
+ throw new TransformResultError();
76
47
  }
77
48
  // check that output of the transformers is a valid TRPCResponse
78
49
  if (!result.ok && (!isObject(result.error.error) || typeof result.error.error.code !== 'number')) {
79
- throw new TRPCClientError('Badly formatted response from server');
50
+ throw new TransformResultError();
80
51
  }
81
52
  if (result.ok && !isObject(result.result)) {
82
- throw new TRPCClientError('Badly formatted response from server');
53
+ throw new TransformResultError();
83
54
  }
84
55
  return result;
85
56
  }
86
57
 
87
- export { TRPCClientError as T, transformResult as t };
58
+ export { transformResult as t };
@@ -1,35 +1,3 @@
1
- class TRPCClientError extends Error {
2
- constructor(message, opts) {
3
- const cause = opts?.cause;
4
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
5
- // @ts-ignore https://github.com/tc39/proposal-error-cause
6
- super(message, { cause });
7
- this.meta = opts?.meta;
8
- this.cause = cause;
9
- this.shape = opts?.result?.error;
10
- this.data = opts?.result?.error.data;
11
- this.name = 'TRPCClientError';
12
- Object.setPrototypeOf(this, TRPCClientError.prototype);
13
- }
14
- static from(cause, opts = {}) {
15
- if (!(cause instanceof Error)) {
16
- return new TRPCClientError(cause.error.message ?? '', {
17
- ...opts,
18
- cause: undefined,
19
- result: cause,
20
- });
21
- }
22
- if (cause.name === 'TRPCClientError') {
23
- return cause;
24
- }
25
- return new TRPCClientError(cause.message, {
26
- ...opts,
27
- cause,
28
- result: null,
29
- });
30
- }
31
- }
32
-
33
1
  function isObject(value) {
34
2
  // check that value is object
35
3
  return !!value && !Array.isArray(value) && typeof value === 'object';
@@ -59,6 +27,11 @@ function transformResultInner(response, runtime) {
59
27
  };
60
28
  return { ok: true, result };
61
29
  }
30
+ class TransformResultError extends Error {
31
+ constructor() {
32
+ super('Unable to transform response from server');
33
+ }
34
+ }
62
35
  /**
63
36
  * Transforms and validates that the result is a valid TRPCResponse
64
37
  * @internal
@@ -70,18 +43,18 @@ function transformResult(response, runtime) {
70
43
  result = transformResultInner(response, runtime);
71
44
  }
72
45
  catch (err) {
73
- throw new TRPCClientError('Unable to transform response from server');
46
+ throw new TransformResultError();
74
47
  }
75
48
  // check that output of the transformers is a valid TRPCResponse
76
49
  if (!result.ok &&
77
50
  (!isObject(result.error.error) ||
78
51
  typeof result.error.error.code !== 'number')) {
79
- throw new TRPCClientError('Badly formatted response from server');
52
+ throw new TransformResultError();
80
53
  }
81
54
  if (result.ok && !isObject(result.result)) {
82
- throw new TRPCClientError('Badly formatted response from server');
55
+ throw new TransformResultError();
83
56
  }
84
57
  return result;
85
58
  }
86
59
 
87
- export { TRPCClientError as T, transformResult as t };
60
+ export { transformResult as t };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trpc/client",
3
- "version": "10.33.1",
3
+ "version": "10.34.0",
4
4
  "description": "The tRPC client library",
5
5
  "author": "KATT",
6
6
  "license": "MIT",
@@ -76,11 +76,11 @@
76
76
  "!**/*.test.*"
77
77
  ],
78
78
  "peerDependencies": {
79
- "@trpc/server": "10.33.1"
79
+ "@trpc/server": "10.34.0"
80
80
  },
81
81
  "devDependencies": {
82
82
  "@testing-library/dom": "^9.0.0",
83
- "@trpc/server": "10.33.1",
83
+ "@trpc/server": "10.34.0",
84
84
  "@types/isomorphic-fetch": "^0.0.36",
85
85
  "@types/node": "^18.16.16",
86
86
  "eslint": "^8.40.0",
@@ -98,5 +98,5 @@
98
98
  "funding": [
99
99
  "https://trpc.io/sponsor"
100
100
  ],
101
- "gitHead": "403be02df05c29a9c3a77256805674baf6b6b125"
101
+ "gitHead": "4b4bb80470b0f03626b6861c2b4cdfc8bb3afd81"
102
102
  }
@@ -24,6 +24,17 @@ export interface TRPCClientErrorBase<TShape extends DefaultErrorShape> {
24
24
  export type TRPCClientErrorLike<TRouterOrProcedure extends ErrorInferrable> =
25
25
  TRPCClientErrorBase<inferErrorShape<TRouterOrProcedure>>;
26
26
 
27
+ function isTRPCClientError(cause: Error): cause is TRPCClientError<any> {
28
+ return (
29
+ cause instanceof TRPCClientError ||
30
+ /**
31
+ * @deprecated
32
+ * Delete in next major
33
+ */
34
+ cause.name === 'TRPCClientError'
35
+ );
36
+ }
37
+
27
38
  export class TRPCClientError<TRouterOrProcedure extends ErrorInferrable>
28
39
  extends Error
29
40
  implements TRPCClientErrorBase<inferErrorShape<TRouterOrProcedure>>
@@ -31,7 +42,12 @@ export class TRPCClientError<TRouterOrProcedure extends ErrorInferrable>
31
42
  public readonly cause;
32
43
  public readonly shape: Maybe<inferErrorShape<TRouterOrProcedure>>;
33
44
  public readonly data: Maybe<inferErrorShape<TRouterOrProcedure>['data']>;
34
- public readonly meta;
45
+
46
+ /**
47
+ * Additional meta data about the error
48
+ * In the case of HTTP-errors, we'll have `response` and potentially `responseJSON` here
49
+ */
50
+ public meta;
35
51
 
36
52
  constructor(
37
53
  message: string,
@@ -71,8 +87,15 @@ export class TRPCClientError<TRouterOrProcedure extends ErrorInferrable>
71
87
  },
72
88
  );
73
89
  }
74
- if (cause.name === 'TRPCClientError') {
75
- return cause as TRPCClientError<any>;
90
+ if (isTRPCClientError(cause)) {
91
+ if (opts.meta) {
92
+ // Decorate with meta error data
93
+ cause.meta = {
94
+ ...cause.meta,
95
+ ...opts.meta,
96
+ };
97
+ }
98
+ return cause;
76
99
  }
77
100
 
78
101
  return new TRPCClientError<TRouterOrProcedure>(cause.message, {
@@ -4,6 +4,7 @@ import { transformResult } from '../shared/transformResult';
4
4
  import { TRPCClientError } from '../TRPCClientError';
5
5
  import {
6
6
  HTTPLinkBaseOptions,
7
+ HTTPResult,
7
8
  jsonHttpRequester,
8
9
  Requester,
9
10
  resolveHTTPLinkOptions,
@@ -48,14 +49,16 @@ export function httpLinkFactory(factoryOpts: { requester: Requester }) {
48
49
  return opts.headers;
49
50
  },
50
51
  });
52
+ let meta: HTTPResult['meta'] | undefined = undefined;
51
53
  promise
52
54
  .then((res) => {
55
+ meta = res.meta;
53
56
  const transformed = transformResult(res.json, runtime);
54
57
 
55
58
  if (!transformed.ok) {
56
59
  observer.error(
57
60
  TRPCClientError.from(transformed.error, {
58
- meta: res.meta,
61
+ meta,
59
62
  }),
60
63
  );
61
64
  return;
@@ -67,7 +70,7 @@ export function httpLinkFactory(factoryOpts: { requester: Requester }) {
67
70
  observer.complete();
68
71
  })
69
72
  .catch((cause) => {
70
- observer.error(TRPCClientError.from(cause));
73
+ observer.error(TRPCClientError.from(cause, { meta }));
71
74
  });
72
75
 
73
76
  return () => {
@@ -87,8 +87,10 @@ export function createHTTPBatchLink<TOptions extends HTTPBatchLinkOptions>(
87
87
  const loader = loaders[op.type];
88
88
  const { promise, cancel } = loader.load(op);
89
89
 
90
+ let _res = undefined as HTTPResult | undefined;
90
91
  promise
91
92
  .then((res) => {
93
+ _res = res;
92
94
  const transformed = transformResult(res.json, runtime);
93
95
 
94
96
  if (!transformed.ok) {
@@ -106,7 +108,11 @@ export function createHTTPBatchLink<TOptions extends HTTPBatchLinkOptions>(
106
108
  observer.complete();
107
109
  })
108
110
  .catch((err) => {
109
- observer.error(TRPCClientError.from(err));
111
+ observer.error(
112
+ TRPCClientError.from(err, {
113
+ meta: _res?.meta,
114
+ }),
115
+ );
110
116
  });
111
117
 
112
118
  return () => {
@@ -9,6 +9,7 @@ import {
9
9
  RequestInitEsque,
10
10
  ResponseEsque,
11
11
  } from '../../internals/types';
12
+ import { TRPCClientError } from '../../TRPCClientError';
12
13
  import { TextDecoderEsque } from '../internals/streamingUtils';
13
14
  import { HTTPHeaders, PromiseAndCancel, TRPCClientRuntime } from '../types';
14
15
 
@@ -62,6 +63,7 @@ export interface HTTPResult {
62
63
  json: TRPCResponse;
63
64
  meta: {
64
65
  response: ResponseEsque;
66
+ responseJSON?: unknown;
65
67
  };
66
68
  }
67
69
 
@@ -185,12 +187,15 @@ export function httpRequest(
185
187
  return _res.json();
186
188
  })
187
189
  .then((json) => {
190
+ meta.responseJSON = json;
188
191
  resolve({
189
192
  json: json as TRPCResponse,
190
193
  meta,
191
194
  });
192
195
  })
193
- .catch(reject);
196
+ .catch((err) => {
197
+ reject(TRPCClientError.from(err, { meta }));
198
+ });
194
199
  });
195
200
  const cancel = () => {
196
201
  ac?.abort();
@@ -6,7 +6,6 @@ import type {
6
6
  } from '@trpc/server/rpc';
7
7
  import type { TRPCClientRuntime } from '../links';
8
8
  import { isObject } from '../links/internals/isObject';
9
- import { TRPCClientError } from '../TRPCClientError';
10
9
 
11
10
  // FIXME:
12
11
  // - the generics here are probably unnecessary
@@ -41,6 +40,12 @@ function transformResultInner<TRouter extends AnyRouter, TOutput>(
41
40
  return { ok: true, result } as const;
42
41
  }
43
42
 
43
+ class TransformResultError extends Error {
44
+ constructor() {
45
+ super('Unable to transform response from server');
46
+ }
47
+ }
48
+
44
49
  /**
45
50
  * Transforms and validates that the result is a valid TRPCResponse
46
51
  * @internal
@@ -56,7 +61,7 @@ export function transformResult<TRouter extends AnyRouter, TOutput>(
56
61
  // Use the data transformers on the JSON-response
57
62
  result = transformResultInner(response, runtime);
58
63
  } catch (err) {
59
- throw new TRPCClientError('Unable to transform response from server');
64
+ throw new TransformResultError();
60
65
  }
61
66
 
62
67
  // check that output of the transformers is a valid TRPCResponse
@@ -65,10 +70,10 @@ export function transformResult<TRouter extends AnyRouter, TOutput>(
65
70
  (!isObject(result.error.error) ||
66
71
  typeof result.error.error.code !== 'number')
67
72
  ) {
68
- throw new TRPCClientError('Badly formatted response from server');
73
+ throw new TransformResultError();
69
74
  }
70
75
  if (result.ok && !isObject(result.result)) {
71
- throw new TRPCClientError('Badly formatted response from server');
76
+ throw new TransformResultError();
72
77
  }
73
78
  return result;
74
79
  }