@superutils/fetch 1.5.1 → 1.5.3
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/README.md +69 -3
- package/dist/browser/index.min.js +1 -1123
- package/dist/browser/index.min.js.map +1 -1
- package/dist/index.cjs +53 -32
- package/dist/index.d.cts +164 -146
- package/dist/index.d.ts +164 -146
- package/dist/index.js +53 -29
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -23,11 +23,11 @@ __export(index_exports, {
|
|
|
23
23
|
ContentType: () => ContentType,
|
|
24
24
|
FetchAs: () => FetchAs,
|
|
25
25
|
FetchError: () => FetchError,
|
|
26
|
-
ResolveError: () =>
|
|
27
|
-
ResolveIgnored: () =>
|
|
28
|
-
TIMEOUT_FALLBACK: () =>
|
|
29
|
-
TIMEOUT_MAX: () =>
|
|
30
|
-
TimeoutPromise: () =>
|
|
26
|
+
ResolveError: () => import_promise5.ResolveError,
|
|
27
|
+
ResolveIgnored: () => import_promise5.ResolveIgnored,
|
|
28
|
+
TIMEOUT_FALLBACK: () => import_promise5.TIMEOUT_FALLBACK,
|
|
29
|
+
TIMEOUT_MAX: () => import_promise5.TIMEOUT_MAX,
|
|
30
|
+
TimeoutPromise: () => import_promise5.TimeoutPromise,
|
|
31
31
|
createClient: () => createClient,
|
|
32
32
|
createPostClient: () => createPostClient,
|
|
33
33
|
default: () => index_default,
|
|
@@ -36,13 +36,14 @@ __export(index_exports, {
|
|
|
36
36
|
mergeOptions: () => mergeOptions
|
|
37
37
|
});
|
|
38
38
|
module.exports = __toCommonJS(index_exports);
|
|
39
|
+
var import_promise5 = require("@superutils/promise");
|
|
39
40
|
|
|
40
41
|
// src/createClient.ts
|
|
41
|
-
var
|
|
42
|
+
var import_promise3 = require("@superutils/promise");
|
|
42
43
|
|
|
43
44
|
// src/fetch.ts
|
|
44
45
|
var import_core4 = require("@superutils/core");
|
|
45
|
-
var
|
|
46
|
+
var import_promise2 = require("@superutils/promise");
|
|
46
47
|
|
|
47
48
|
// src/executeInterceptors.ts
|
|
48
49
|
var import_core = require("@superutils/core");
|
|
@@ -199,14 +200,25 @@ var FetchError = class _FetchError extends Error {
|
|
|
199
200
|
}
|
|
200
201
|
};
|
|
201
202
|
|
|
202
|
-
// src/types/index.ts
|
|
203
|
-
var import_promise2 = require("@superutils/promise");
|
|
204
|
-
|
|
205
203
|
// src/fetch.ts
|
|
206
204
|
var fetch = (url, options = {}) => {
|
|
207
205
|
var _a, _b, _c;
|
|
206
|
+
if (!(0, import_core4.isObj)(options)) options = {};
|
|
207
|
+
let fromPostClient = false;
|
|
208
|
+
if (options.fromPostClient) {
|
|
209
|
+
delete options.fromPostClient;
|
|
210
|
+
fromPostClient = true;
|
|
211
|
+
}
|
|
208
212
|
let response;
|
|
209
|
-
const opts = mergeOptions_default(
|
|
213
|
+
const opts = mergeOptions_default(
|
|
214
|
+
{
|
|
215
|
+
abortOnEarlyFinalize: fetch.defaults.abortOnEarlyFinalize,
|
|
216
|
+
errMsgs: fetch.defaults.errMsgs,
|
|
217
|
+
timeout: import_promise2.TIMEOUT_MAX,
|
|
218
|
+
validateUrl: false
|
|
219
|
+
},
|
|
220
|
+
options
|
|
221
|
+
);
|
|
210
222
|
opts.abortCtrl = opts.abortCtrl instanceof AbortController ? opts.abortCtrl : new AbortController();
|
|
211
223
|
(_a = opts.as) != null ? _a : opts.as = "response" /* response */;
|
|
212
224
|
(_b = opts.method) != null ? _b : opts.method = "get";
|
|
@@ -234,32 +246,35 @@ var fetch = (url, options = {}) => {
|
|
|
234
246
|
response
|
|
235
247
|
);
|
|
236
248
|
};
|
|
237
|
-
return (0,
|
|
249
|
+
return (0, import_promise2.timeout)(opts, async () => {
|
|
238
250
|
var _a2, _b2, _c2, _d, _e;
|
|
239
251
|
try {
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
252
|
+
opts.body = await (0, import_core4.fallbackIfFails)(
|
|
253
|
+
opts.body,
|
|
254
|
+
[],
|
|
255
|
+
(err) => Promise.reject(err)
|
|
256
|
+
);
|
|
245
257
|
url = await executeInterceptors_default(
|
|
246
258
|
url,
|
|
247
259
|
abortCtrl.signal,
|
|
248
260
|
(_a2 = opts.interceptors) == null ? void 0 : _a2.request,
|
|
249
261
|
opts
|
|
250
262
|
);
|
|
251
|
-
const { body, errMsgs, validateUrl =
|
|
263
|
+
const { body, errMsgs, validateUrl = false } = opts;
|
|
252
264
|
(_b2 = opts.signal) != null ? _b2 : opts.signal = abortCtrl.signal;
|
|
253
265
|
if (validateUrl && !(0, import_core4.isUrlValid)(url, false))
|
|
254
266
|
throw new Error(errMsgs.invalidUrl);
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
267
|
+
if (fromPostClient) {
|
|
268
|
+
let contentType = headers.get("content-type");
|
|
269
|
+
if (!contentType) {
|
|
270
|
+
headers.set("content-type", ContentType.APPLICATION_JSON);
|
|
271
|
+
contentType = ContentType.APPLICATION_JSON;
|
|
272
|
+
}
|
|
273
|
+
const shouldStringifyBody = ["delete", "patch", "post", "put"].includes(
|
|
274
|
+
`${opts.method}`.toLowerCase()
|
|
275
|
+
) && !["undefined", "string"].includes(typeof body) && (0, import_core4.isObj)(body, true) && contentType === ContentType.APPLICATION_JSON;
|
|
276
|
+
if (shouldStringifyBody) opts.body = JSON.stringify(opts.body);
|
|
277
|
+
}
|
|
263
278
|
response = await getResponse_default(url, opts);
|
|
264
279
|
response = await executeInterceptors_default(
|
|
265
280
|
response,
|
|
@@ -325,8 +340,8 @@ fetch.defaults = {
|
|
|
325
340
|
response: [],
|
|
326
341
|
result: []
|
|
327
342
|
},
|
|
328
|
-
timeout:
|
|
329
|
-
validateUrl:
|
|
343
|
+
timeout: 6e4,
|
|
344
|
+
validateUrl: false
|
|
330
345
|
};
|
|
331
346
|
var interceptErr = async (err, url, options, response) => {
|
|
332
347
|
var _a, _b, _c;
|
|
@@ -352,6 +367,7 @@ var createClient = (fixedOptions, commonOptions, commonDeferOptions) => {
|
|
|
352
367
|
function client(url, options) {
|
|
353
368
|
var _a;
|
|
354
369
|
const mergedOptions = mergeOptions_default(
|
|
370
|
+
fetch_default.defaults,
|
|
355
371
|
commonOptions,
|
|
356
372
|
options,
|
|
357
373
|
fixedOptions
|
|
@@ -365,6 +381,7 @@ var createClient = (fixedOptions, commonOptions, commonDeferOptions) => {
|
|
|
365
381
|
const fetchCb = (...args) => {
|
|
366
382
|
var _a, _b, _c;
|
|
367
383
|
const mergedOptions = (_a = mergeOptions_default(
|
|
384
|
+
fetch_default.defaults,
|
|
368
385
|
commonOptions,
|
|
369
386
|
defaultOptions,
|
|
370
387
|
defaultUrl === void 0 ? args[1] : args[0],
|
|
@@ -379,7 +396,7 @@ var createClient = (fixedOptions, commonOptions, commonDeferOptions) => {
|
|
|
379
396
|
mergedOptions
|
|
380
397
|
);
|
|
381
398
|
};
|
|
382
|
-
return (0,
|
|
399
|
+
return (0, import_promise3.deferredCallback)(fetchCb, {
|
|
383
400
|
...commonDeferOptions,
|
|
384
401
|
...deferOptions
|
|
385
402
|
});
|
|
@@ -389,19 +406,21 @@ var createClient = (fixedOptions, commonOptions, commonDeferOptions) => {
|
|
|
389
406
|
var createClient_default = createClient;
|
|
390
407
|
|
|
391
408
|
// src/createPostClient.ts
|
|
392
|
-
var
|
|
409
|
+
var import_promise4 = require("@superutils/promise");
|
|
393
410
|
var createPostClient = (fixedOptions, commonOptions, commonDeferOptions) => {
|
|
394
411
|
function client(url, data, options) {
|
|
395
412
|
var _a, _b;
|
|
396
413
|
const mergedOptions = mergeOptions_default(
|
|
414
|
+
fetch_default.defaults,
|
|
397
415
|
commonOptions,
|
|
398
416
|
options,
|
|
399
417
|
fixedOptions
|
|
400
418
|
// fixed options will always override other options
|
|
401
419
|
);
|
|
402
420
|
(_a = mergedOptions.as) != null ? _a : mergedOptions.as = "json" /* json */;
|
|
403
|
-
mergedOptions.body = data;
|
|
421
|
+
mergedOptions.body = data != null ? data : mergedOptions.body;
|
|
404
422
|
(_b = mergedOptions.method) != null ? _b : mergedOptions.method = "post";
|
|
423
|
+
mergedOptions.fromPostClient = true;
|
|
405
424
|
return fetch_default(url, mergedOptions);
|
|
406
425
|
}
|
|
407
426
|
client.deferred = (deferOptions, defaultUrl, defaultData, defaultOptions) => {
|
|
@@ -411,6 +430,7 @@ var createPostClient = (fixedOptions, commonOptions, commonDeferOptions) => {
|
|
|
411
430
|
if (defaultUrl !== void 0) args.splice(0, 0, defaultUrl);
|
|
412
431
|
if (defaultData !== void 0) args.splice(1, 0, defaultData);
|
|
413
432
|
const mergedOptions = (_a = mergeOptions_default(
|
|
433
|
+
fetch_default.defaults,
|
|
414
434
|
commonOptions,
|
|
415
435
|
defaultOptions,
|
|
416
436
|
args[2],
|
|
@@ -422,9 +442,10 @@ var createPostClient = (fixedOptions, commonOptions, commonDeferOptions) => {
|
|
|
422
442
|
_abortCtrl = new AbortController();
|
|
423
443
|
mergedOptions.body = (_d = args[1]) != null ? _d : mergedOptions.body;
|
|
424
444
|
(_e = mergedOptions.method) != null ? _e : mergedOptions.method = "post";
|
|
445
|
+
mergedOptions.fromPostClient = true;
|
|
425
446
|
return fetch_default(args[0], mergedOptions);
|
|
426
447
|
};
|
|
427
|
-
return (0,
|
|
448
|
+
return (0, import_promise4.deferredCallback)(postCb, {
|
|
428
449
|
...commonDeferOptions,
|
|
429
450
|
...deferOptions
|
|
430
451
|
});
|