vigor-fetch 1.0.16 → 1.0.18

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -38,7 +38,7 @@ class VigorFetchError extends VigorError {
38
38
  class VigorAllError extends VigorError {
39
39
  constructor(text, options) {
40
40
  super(text, options);
41
- this.message = options.message || `[VigorFetchError] ${text}`;
41
+ this.message = options.message || `[VigorAllError] ${text}`;
42
42
  }
43
43
  }
44
44
  /**
@@ -62,8 +62,14 @@ class VigorRetry {
62
62
  return new this.constructor(this._target, this._args, {
63
63
  ...this._config,
64
64
  ...changes,
65
- retry: { ...this._config.retry, ...(changes.retry || {}) },
66
- interceptors: { ...this._config.interceptors, ...(changes.interceptors || {}) }
65
+ retry: {
66
+ ...this._config.retry,
67
+ ...(changes.retry || {})
68
+ },
69
+ interceptors: {
70
+ ...this._config.interceptors,
71
+ ...(changes.interceptors || {})
72
+ }
67
73
  });
68
74
  }
69
75
  args(...args) { return new this.constructor(this._target, args, this._config); }
@@ -165,8 +171,14 @@ class VigorParse {
165
171
  return new this.constructor(this._response, {
166
172
  ...this._config,
167
173
  ...changes,
168
- settings: { ...this._config.settings, ...(changes.settings || {}) },
169
- interceptors: { ...this._config.interceptors, ...(changes.interceptors || {}) }
174
+ settings: {
175
+ ...this._config.settings,
176
+ ...(changes.settings || {})
177
+ },
178
+ interceptors: {
179
+ ...this._config.interceptors,
180
+ ...(changes.interceptors || {})
181
+ }
170
182
  });
171
183
  }
172
184
  original(bool) { return this._next({ settings: { original: bool } }); }
@@ -237,28 +249,38 @@ class VigorParse {
237
249
  class VigorFetch {
238
250
  constructor(origin = "", config = {}) {
239
251
  this._config = {
240
- request: {
241
- origin, path: "", query: {},
242
- method: "", headers: {}, body: null, offset: {}
243
- },
244
- retry: {
245
- limit: 10000,
246
- retryHeaders: ["retry-after", "ratelimit-reset", "x-ratelimit-reset", "x-retry-after", "x-amz-retry-after", "chrome-proxy-next-link"],
247
- unretry: new Set([400, 401, 403, 404, 406, 409, 410, 411, 413, 414, 415, 422]),
248
- },
252
+ request: { origin, path: "", query: {}, method: "", headers: {}, body: null, offset: {} },
253
+ retry: { limit: 10000, retryHeaders: ["retry-after", "ratelimit-reset"], unretry: new Set([400, 404]) },
249
254
  response: { retryConfig: undefined, parseConfig: undefined },
250
255
  interceptors: { before: [], after: [], onError: [], result: [] },
251
256
  ...config
252
257
  };
253
258
  }
254
259
  _next(changes) {
255
- return new this.constructor(this._config.request.origin, {
260
+ const newConfig = {
256
261
  ...this._config,
257
- ...changes,
258
262
  request: { ...this._config.request, ...(changes.request || {}) },
259
263
  retry: { ...this._config.retry, ...(changes.retry || {}) },
260
- interceptors: { ...this._config.interceptors, ...(changes.interceptors || {}) }
261
- });
264
+ response: { ...this._config.response, ...(changes.response || {}) },
265
+ interceptors: {
266
+ before: [...(this._config.interceptors.before || [])],
267
+ after: [...(this._config.interceptors.after || [])],
268
+ onError: [...(this._config.interceptors.onError || [])],
269
+ result: [...(this._config.interceptors.result || [])],
270
+ ...(changes.interceptors || {})
271
+ }
272
+ };
273
+ if (changes.interceptors) {
274
+ Object.keys(changes.interceptors).forEach(key => {
275
+ if (Array.isArray(changes.interceptors[key])) {
276
+ newConfig.interceptors[key] = [
277
+ ...this._config.interceptors[key],
278
+ ...changes.interceptors[key]
279
+ ];
280
+ }
281
+ });
282
+ }
283
+ return new this.constructor(newConfig.request.origin, newConfig);
262
284
  }
263
285
  origin(str) { return this._next({ request: { origin: str } }); }
264
286
  path(str) { return this._next({ request: { path: str } }); }
@@ -352,12 +374,13 @@ class VigorFetch {
352
374
  }
353
375
  const parseInstance = new VigorParse(ctx.result, parseConfig);
354
376
  ctx.final = await parseInstance.request();
355
- for (const func of result) {
377
+ const finalInterceptors = this._config.interceptors.result || [];
378
+ for (const func of finalInterceptors) {
356
379
  if (typeof func !== 'function')
357
- throw new VigorFetchError('Interceptor<result> is not a function', { type: "not a function", data: "result" });
380
+ continue;
358
381
  const next = await func(ctx.final);
359
- if (next !== undefined && typeof next === 'object' && !Array.isArray(next))
360
- ctx.final = { ...ctx, ...next };
382
+ if (next !== undefined)
383
+ ctx.final = next;
361
384
  }
362
385
  if (ctx.final instanceof Error)
363
386
  throw ctx.final;
@@ -395,9 +418,18 @@ class VigorAll {
395
418
  return new this.constructor({
396
419
  ...this._config,
397
420
  ...changes,
398
- settings: { ...this._config.settings, ...(changes.settings || {}) },
399
- request: { ...this._config.request, ...(changes.request || {}) },
400
- interceptors: { ...this._config.interceptors, ...(changes.interceptors || {}) }
421
+ settings: {
422
+ ...this._config.settings,
423
+ ...(changes.settings || {})
424
+ },
425
+ request: {
426
+ ...this._config.request,
427
+ ...(changes.request || {})
428
+ },
429
+ interceptors: {
430
+ ...this._config.interceptors,
431
+ ...(changes.interceptors || {})
432
+ }
401
433
  });
402
434
  }
403
435
  promises(...func) { return this._next({ request: { promises: [...this._config.request.promises, ...func.flat()] } }); }
package/dist/index.mjs CHANGED
@@ -34,7 +34,7 @@ class VigorFetchError extends VigorError {
34
34
  class VigorAllError extends VigorError {
35
35
  constructor(text, options) {
36
36
  super(text, options);
37
- this.message = options.message || `[VigorFetchError] ${text}`;
37
+ this.message = options.message || `[VigorAllError] ${text}`;
38
38
  }
39
39
  }
40
40
  /**
@@ -58,8 +58,14 @@ class VigorRetry {
58
58
  return new this.constructor(this._target, this._args, {
59
59
  ...this._config,
60
60
  ...changes,
61
- retry: { ...this._config.retry, ...(changes.retry || {}) },
62
- interceptors: { ...this._config.interceptors, ...(changes.interceptors || {}) }
61
+ retry: {
62
+ ...this._config.retry,
63
+ ...(changes.retry || {})
64
+ },
65
+ interceptors: {
66
+ ...this._config.interceptors,
67
+ ...(changes.interceptors || {})
68
+ }
63
69
  });
64
70
  }
65
71
  args(...args) { return new this.constructor(this._target, args, this._config); }
@@ -161,8 +167,14 @@ class VigorParse {
161
167
  return new this.constructor(this._response, {
162
168
  ...this._config,
163
169
  ...changes,
164
- settings: { ...this._config.settings, ...(changes.settings || {}) },
165
- interceptors: { ...this._config.interceptors, ...(changes.interceptors || {}) }
170
+ settings: {
171
+ ...this._config.settings,
172
+ ...(changes.settings || {})
173
+ },
174
+ interceptors: {
175
+ ...this._config.interceptors,
176
+ ...(changes.interceptors || {})
177
+ }
166
178
  });
167
179
  }
168
180
  original(bool) { return this._next({ settings: { original: bool } }); }
@@ -233,28 +245,38 @@ class VigorParse {
233
245
  class VigorFetch {
234
246
  constructor(origin = "", config = {}) {
235
247
  this._config = {
236
- request: {
237
- origin, path: "", query: {},
238
- method: "", headers: {}, body: null, offset: {}
239
- },
240
- retry: {
241
- limit: 10000,
242
- retryHeaders: ["retry-after", "ratelimit-reset", "x-ratelimit-reset", "x-retry-after", "x-amz-retry-after", "chrome-proxy-next-link"],
243
- unretry: new Set([400, 401, 403, 404, 406, 409, 410, 411, 413, 414, 415, 422]),
244
- },
248
+ request: { origin, path: "", query: {}, method: "", headers: {}, body: null, offset: {} },
249
+ retry: { limit: 10000, retryHeaders: ["retry-after", "ratelimit-reset"], unretry: new Set([400, 404]) },
245
250
  response: { retryConfig: undefined, parseConfig: undefined },
246
251
  interceptors: { before: [], after: [], onError: [], result: [] },
247
252
  ...config
248
253
  };
249
254
  }
250
255
  _next(changes) {
251
- return new this.constructor(this._config.request.origin, {
256
+ const newConfig = {
252
257
  ...this._config,
253
- ...changes,
254
258
  request: { ...this._config.request, ...(changes.request || {}) },
255
259
  retry: { ...this._config.retry, ...(changes.retry || {}) },
256
- interceptors: { ...this._config.interceptors, ...(changes.interceptors || {}) }
257
- });
260
+ response: { ...this._config.response, ...(changes.response || {}) },
261
+ interceptors: {
262
+ before: [...(this._config.interceptors.before || [])],
263
+ after: [...(this._config.interceptors.after || [])],
264
+ onError: [...(this._config.interceptors.onError || [])],
265
+ result: [...(this._config.interceptors.result || [])],
266
+ ...(changes.interceptors || {})
267
+ }
268
+ };
269
+ if (changes.interceptors) {
270
+ Object.keys(changes.interceptors).forEach(key => {
271
+ if (Array.isArray(changes.interceptors[key])) {
272
+ newConfig.interceptors[key] = [
273
+ ...this._config.interceptors[key],
274
+ ...changes.interceptors[key]
275
+ ];
276
+ }
277
+ });
278
+ }
279
+ return new this.constructor(newConfig.request.origin, newConfig);
258
280
  }
259
281
  origin(str) { return this._next({ request: { origin: str } }); }
260
282
  path(str) { return this._next({ request: { path: str } }); }
@@ -348,12 +370,13 @@ class VigorFetch {
348
370
  }
349
371
  const parseInstance = new VigorParse(ctx.result, parseConfig);
350
372
  ctx.final = await parseInstance.request();
351
- for (const func of result) {
373
+ const finalInterceptors = this._config.interceptors.result || [];
374
+ for (const func of finalInterceptors) {
352
375
  if (typeof func !== 'function')
353
- throw new VigorFetchError('Interceptor<result> is not a function', { type: "not a function", data: "result" });
376
+ continue;
354
377
  const next = await func(ctx.final);
355
- if (next !== undefined && typeof next === 'object' && !Array.isArray(next))
356
- ctx.final = { ...ctx, ...next };
378
+ if (next !== undefined)
379
+ ctx.final = next;
357
380
  }
358
381
  if (ctx.final instanceof Error)
359
382
  throw ctx.final;
@@ -391,9 +414,18 @@ class VigorAll {
391
414
  return new this.constructor({
392
415
  ...this._config,
393
416
  ...changes,
394
- settings: { ...this._config.settings, ...(changes.settings || {}) },
395
- request: { ...this._config.request, ...(changes.request || {}) },
396
- interceptors: { ...this._config.interceptors, ...(changes.interceptors || {}) }
417
+ settings: {
418
+ ...this._config.settings,
419
+ ...(changes.settings || {})
420
+ },
421
+ request: {
422
+ ...this._config.request,
423
+ ...(changes.request || {})
424
+ },
425
+ interceptors: {
426
+ ...this._config.interceptors,
427
+ ...(changes.interceptors || {})
428
+ }
397
429
  });
398
430
  }
399
431
  promises(...func) { return this._next({ request: { promises: [...this._config.request.promises, ...func.flat()] } }); }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vigor-fetch",
3
- "version": "1.0.16",
3
+ "version": "1.0.18",
4
4
  "description": "Smart, zero-dependency HTTP client with self-healing retries for rate-limited servers.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",