@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/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: () => import_promise2.ResolveError,
27
- ResolveIgnored: () => import_promise2.ResolveIgnored,
28
- TIMEOUT_FALLBACK: () => import_promise2.TIMEOUT_FALLBACK,
29
- TIMEOUT_MAX: () => import_promise2.TIMEOUT_MAX,
30
- TimeoutPromise: () => import_promise2.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 import_promise4 = require("@superutils/promise");
42
+ var import_promise3 = require("@superutils/promise");
42
43
 
43
44
  // src/fetch.ts
44
45
  var import_core4 = require("@superutils/core");
45
- var import_promise3 = require("@superutils/promise");
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(fetch.defaults, options);
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, import_promise3.timeout)(opts, async () => {
249
+ return (0, import_promise2.timeout)(opts, async () => {
238
250
  var _a2, _b2, _c2, _d, _e;
239
251
  try {
240
- let contentType = headers.get("content-type");
241
- if (!contentType) {
242
- headers.set("content-type", ContentType.APPLICATION_JSON);
243
- contentType = ContentType.APPLICATION_JSON;
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 = true } = opts;
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
- const shouldStringifyBody = [
256
- ContentType.APPLICATION_JSON,
257
- ContentType.APPLICATION_X_WWW_FORM_URLENCODED
258
- ].find((x) => contentType.includes(x)) && !["undefined", "string"].includes(typeof body);
259
- if (shouldStringifyBody)
260
- opts.body = JSON.stringify(
261
- (0, import_core4.isFn)(body) ? (0, import_core4.fallbackIfFails)(body, [], void 0) : body
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: 3e4,
329
- validateUrl: true
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, import_promise4.deferredCallback)(fetchCb, {
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 import_promise5 = require("@superutils/promise");
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, import_promise5.deferredCallback)(postCb, {
448
+ return (0, import_promise4.deferredCallback)(postCb, {
428
449
  ...commonDeferOptions,
429
450
  ...deferOptions
430
451
  });