@cloudcommerce/api 2.15.4 → 2.15.5
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/lib/api.d.ts +4 -2
- package/lib/api.js +15 -11
- package/lib/api.js.map +1 -1
- package/package.json +1 -1
package/lib/api.d.ts
CHANGED
|
@@ -16,12 +16,14 @@ declare class ApiError extends Error {
|
|
|
16
16
|
};
|
|
17
17
|
statusCode?: number;
|
|
18
18
|
data?: ErrorBody;
|
|
19
|
+
retries?: number;
|
|
19
20
|
isTimeout: boolean;
|
|
20
|
-
constructor({ config, url, response, msg, isTimeout, }: {
|
|
21
|
+
constructor({ config, url, response, msg, retries, isTimeout, }: {
|
|
21
22
|
config: Config;
|
|
22
23
|
url?: string;
|
|
23
24
|
response?: ApiError['response'];
|
|
24
25
|
msg?: string;
|
|
26
|
+
retries?: number;
|
|
25
27
|
isTimeout?: boolean;
|
|
26
28
|
});
|
|
27
29
|
}
|
|
@@ -36,7 +38,7 @@ declare const api: {
|
|
|
36
38
|
<T extends Config & {
|
|
37
39
|
body?: any;
|
|
38
40
|
data?: any;
|
|
39
|
-
}>(requestConfig: T,
|
|
41
|
+
}>(requestConfig: T, retries?: number): Promise<Response & {
|
|
40
42
|
config: Config;
|
|
41
43
|
data: ResponseBody<T>;
|
|
42
44
|
}>;
|
package/lib/api.js
CHANGED
|
@@ -5,17 +5,14 @@ const _env = ((typeof process === 'object' && process?.env)
|
|
|
5
5
|
|| globalThis);
|
|
6
6
|
class ApiError extends Error {
|
|
7
7
|
constructor({
|
|
8
|
-
config, url, response, msg, isTimeout = false,
|
|
8
|
+
config, url, response, msg, retries, isTimeout = false,
|
|
9
9
|
}) {
|
|
10
10
|
if (response) {
|
|
11
11
|
let errorMsg = response.statusText;
|
|
12
12
|
const { data } = response;
|
|
13
|
-
if (data?.error_code) {
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
if (url) {
|
|
17
|
-
errorMsg += ` at ${url}`;
|
|
18
|
-
}
|
|
13
|
+
if (data?.error_code) errorMsg += ` (${data?.error_code})`;
|
|
14
|
+
if (retries) errorMsg += ` ${retries}a`;
|
|
15
|
+
if (url) errorMsg += ` at ${url}`;
|
|
19
16
|
super(errorMsg);
|
|
20
17
|
this.data = data;
|
|
21
18
|
this.statusCode = response.status;
|
|
@@ -25,6 +22,7 @@ class ApiError extends Error {
|
|
|
25
22
|
this.url = url;
|
|
26
23
|
this.config = config;
|
|
27
24
|
this.response = response;
|
|
25
|
+
this.retries = retries;
|
|
28
26
|
this.isTimeout = isTimeout;
|
|
29
27
|
}
|
|
30
28
|
}
|
|
@@ -104,7 +102,7 @@ const def = {
|
|
|
104
102
|
const setMiddleware = (middleware) => {
|
|
105
103
|
def.middleware = middleware;
|
|
106
104
|
};
|
|
107
|
-
const api = async (requestConfig,
|
|
105
|
+
const api = async (requestConfig, retries = 0) => {
|
|
108
106
|
const config = globalThis.$apiMergeConfig
|
|
109
107
|
? { ...globalThis.$apiMergeConfig, ...requestConfig }
|
|
110
108
|
: requestConfig;
|
|
@@ -150,6 +148,7 @@ const api = async (requestConfig, _retries = 0) => {
|
|
|
150
148
|
url,
|
|
151
149
|
response,
|
|
152
150
|
msg,
|
|
151
|
+
retries,
|
|
153
152
|
isTimeout,
|
|
154
153
|
});
|
|
155
154
|
}
|
|
@@ -168,11 +167,11 @@ const api = async (requestConfig, _retries = 0) => {
|
|
|
168
167
|
return res;
|
|
169
168
|
}
|
|
170
169
|
const { status } = response;
|
|
171
|
-
if (maxRetries
|
|
170
|
+
if (maxRetries > retries && (status === 429 || status >= 500)) {
|
|
172
171
|
const retryAfter = response.headers.get('retry-after');
|
|
173
172
|
return new Promise((resolve, reject) => {
|
|
174
173
|
setTimeout(() => {
|
|
175
|
-
api(requestConfig,
|
|
174
|
+
api(requestConfig, retries + 1).then(resolve).catch(reject);
|
|
176
175
|
}, (retryAfter && parseInt(retryAfter, 10) * 1000) || 5000);
|
|
177
176
|
});
|
|
178
177
|
}
|
|
@@ -182,7 +181,12 @@ const api = async (requestConfig, _retries = 0) => {
|
|
|
182
181
|
} catch (e) {
|
|
183
182
|
//
|
|
184
183
|
}
|
|
185
|
-
throw new ApiError({
|
|
184
|
+
throw new ApiError({
|
|
185
|
+
config,
|
|
186
|
+
url,
|
|
187
|
+
response,
|
|
188
|
+
retries,
|
|
189
|
+
});
|
|
186
190
|
};
|
|
187
191
|
const get = (endpoint, config) => {
|
|
188
192
|
// @ts-ignore
|
package/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAoBA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;IAC3B,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,IAAI,GAAG,CACX,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,EAAE,GAAG,CAAC;OAC1C,UAAU,CACS,CAAC;AAEzB,MAAM,QAAS,SAAQ,KAAK;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|