@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.
- package/dist/TRPCClientError-8462a9bf.js +48 -0
- package/dist/TRPCClientError-dffb44e0.js +50 -0
- package/dist/TRPCClientError-fef6cf44.mjs +48 -0
- package/dist/TRPCClientError.d.ts +5 -1
- package/dist/TRPCClientError.d.ts.map +1 -1
- package/dist/{httpBatchLink-76c6f2d4.js → httpBatchLink-2abec973.js} +9 -4
- package/dist/{httpBatchLink-c64f6cdb.js → httpBatchLink-579b00eb.js} +8 -3
- package/dist/{httpBatchLink-c184c799.mjs → httpBatchLink-fbd7b43c.mjs} +8 -3
- package/dist/{httpUtils-a9242d4e.mjs → httpUtils-1efcb902.mjs} +8 -1
- package/dist/{httpUtils-a0ac1597.js → httpUtils-676ede95.js} +6 -1
- package/dist/{httpUtils-fa0d6f71.js → httpUtils-cc69e11f.js} +8 -1
- package/dist/index.js +6 -5
- package/dist/index.mjs +7 -6
- package/dist/links/httpBatchLink.js +4 -3
- package/dist/links/httpBatchLink.mjs +4 -3
- package/dist/links/httpLink.d.ts.map +1 -1
- package/dist/links/httpLink.js +10 -5
- package/dist/links/httpLink.mjs +9 -4
- package/dist/links/internals/createHTTPBatchLink.d.ts.map +1 -1
- package/dist/links/internals/httpUtils.d.ts +1 -0
- package/dist/links/internals/httpUtils.d.ts.map +1 -1
- package/dist/links/wsLink.js +4 -3
- package/dist/links/wsLink.mjs +2 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/index.mjs +1 -1
- package/dist/shared/transformResult.d.ts.map +1 -1
- package/dist/{transformResult-70f95ffb.js → transformResult-26a22823.js} +8 -38
- package/dist/{transformResult-9a244fe7.mjs → transformResult-7ab522e6.mjs} +9 -38
- package/dist/{transformResult-ae8e970c.js → transformResult-82684494.js} +9 -36
- package/package.json +4 -4
- package/src/TRPCClientError.ts +26 -3
- package/src/links/httpLink.ts +5 -2
- package/src/links/internals/createHTTPBatchLink.ts +7 -1
- package/src/links/internals/httpUtils.ts +6 -1
- 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
|
-
|
|
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;
|
|
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-
|
|
5
|
-
var
|
|
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(
|
|
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(
|
|
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
|
|
3
|
-
import {
|
|
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
|
|
3
|
-
import {
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
7
|
+
var TRPCClientError = require('./TRPCClientError-dffb44e0.js');
|
|
8
8
|
var shared = require('@trpc/server/shared');
|
|
9
|
-
var httpUtils = require('./httpUtils-
|
|
10
|
-
var links_httpBatchLink = require('./httpBatchLink-
|
|
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(
|
|
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 =
|
|
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 './
|
|
5
|
-
export { T as TRPCClientError } from './
|
|
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-
|
|
8
|
-
export { b as getFetch } from './httpUtils-
|
|
9
|
-
import { c as createHTTPBatchLink } from './httpBatchLink-
|
|
10
|
-
export { h as httpBatchLink } from './httpBatchLink-
|
|
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-
|
|
6
|
-
require('../httpUtils-
|
|
5
|
+
var links_httpBatchLink = require('../httpBatchLink-2abec973.js');
|
|
6
|
+
require('../httpUtils-cc69e11f.js');
|
|
7
7
|
require('@trpc/server/observable');
|
|
8
|
-
require('../transformResult-
|
|
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-
|
|
2
|
-
import '../httpUtils-
|
|
1
|
+
export { h as httpBatchLink } from '../httpBatchLink-fbd7b43c.mjs';
|
|
2
|
+
import '../httpUtils-1efcb902.mjs';
|
|
3
3
|
import '@trpc/server/observable';
|
|
4
|
-
import '../transformResult-
|
|
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,
|
|
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"}
|
package/dist/links/httpLink.js
CHANGED
|
@@ -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-
|
|
7
|
-
var
|
|
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(
|
|
36
|
-
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(
|
|
49
|
+
observer.error(TRPCClientError.TRPCClientError.from(cause, {
|
|
50
|
+
meta
|
|
51
|
+
}));
|
|
47
52
|
});
|
|
48
53
|
return ()=>{
|
|
49
54
|
cancel();
|
package/dist/links/httpLink.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { observable } from '@trpc/server/observable';
|
|
2
|
-
import { t as transformResult
|
|
3
|
-
import {
|
|
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
|
|
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,
|
|
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"}
|
|
@@ -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;
|
|
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"}
|
package/dist/links/wsLink.js
CHANGED
|
@@ -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-
|
|
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?.(
|
|
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(
|
|
258
|
+
observer.error(TRPCClientError.TRPCClientError.from(transformed.error));
|
|
258
259
|
return;
|
|
259
260
|
}
|
|
260
261
|
observer.next({
|
package/dist/links/wsLink.mjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { observable } from '@trpc/server/observable';
|
|
2
|
-
import {
|
|
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
|
|
package/dist/shared/index.js
CHANGED
package/dist/shared/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { t as transformResult } from '../transformResult-
|
|
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;
|
|
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
|
|
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
|
|
52
|
+
throw new TransformResultError();
|
|
82
53
|
}
|
|
83
54
|
if (result.ok && !isObject(result.result)) {
|
|
84
|
-
throw new
|
|
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
|
|
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
|
|
50
|
+
throw new TransformResultError();
|
|
80
51
|
}
|
|
81
52
|
if (result.ok && !isObject(result.result)) {
|
|
82
|
-
throw new
|
|
53
|
+
throw new TransformResultError();
|
|
83
54
|
}
|
|
84
55
|
return result;
|
|
85
56
|
}
|
|
86
57
|
|
|
87
|
-
export {
|
|
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
|
|
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
|
|
52
|
+
throw new TransformResultError();
|
|
80
53
|
}
|
|
81
54
|
if (result.ok && !isObject(result.result)) {
|
|
82
|
-
throw new
|
|
55
|
+
throw new TransformResultError();
|
|
83
56
|
}
|
|
84
57
|
return result;
|
|
85
58
|
}
|
|
86
59
|
|
|
87
|
-
export {
|
|
60
|
+
export { transformResult as t };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trpc/client",
|
|
3
|
-
"version": "10.
|
|
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.
|
|
79
|
+
"@trpc/server": "10.34.0"
|
|
80
80
|
},
|
|
81
81
|
"devDependencies": {
|
|
82
82
|
"@testing-library/dom": "^9.0.0",
|
|
83
|
-
"@trpc/server": "10.
|
|
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": "
|
|
101
|
+
"gitHead": "4b4bb80470b0f03626b6861c2b4cdfc8bb3afd81"
|
|
102
102
|
}
|
package/src/TRPCClientError.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
|
75
|
-
|
|
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, {
|
package/src/links/httpLink.ts
CHANGED
|
@@ -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
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
73
|
+
throw new TransformResultError();
|
|
69
74
|
}
|
|
70
75
|
if (result.ok && !isObject(result.result)) {
|
|
71
|
-
throw new
|
|
76
|
+
throw new TransformResultError();
|
|
72
77
|
}
|
|
73
78
|
return result;
|
|
74
79
|
}
|