vigor-fetch 2.1.1 → 2.2.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/README.md CHANGED
@@ -195,6 +195,7 @@ vigor.all(tasks: VigorAllTask<T>[])
195
195
  |------|------|-------------|
196
196
  | concurrency | number | Max parallel tasks |
197
197
  | jitter | number | Delay randomness |
198
+ | onlySuccess | boolean | Filters Success |
198
199
 
199
200
 
200
201
  ---
package/dist/index.d.ts CHANGED
@@ -1,36 +1,69 @@
1
- type VigorErrorOptions<T> = {
1
+ declare const VIGOR_ERROR_MESSAGES: {
2
+ readonly TIMEOUT: ({ limit, attempt }: {
3
+ limit: number;
4
+ attempt: number;
5
+ }) => string;
6
+ readonly EXHAUSTED: ({ maxAttempts }: {
7
+ maxAttempts: number;
8
+ }) => string;
9
+ readonly INVALID_URL: ({ received }: {
10
+ received: unknown;
11
+ }) => string;
12
+ readonly INVALID_PROTOCOL: ({ expected, received }: {
13
+ expected: Array<string>;
14
+ received: unknown;
15
+ }) => string;
16
+ readonly FETCH_ERROR: ({ status, statusText, url }: {
17
+ status: number;
18
+ statusText: string;
19
+ url: string;
20
+ }) => string;
21
+ readonly PARSE_FAILED: ({ expected }: {
22
+ expected: unknown;
23
+ }) => string;
24
+ readonly INVALID_TYPE: ({ expected, received }: {
25
+ expected: unknown;
26
+ received: unknown;
27
+ }) => string;
28
+ readonly TARGET_MISSING: () => string;
29
+ readonly REQUEST_FAILED: ({ index, error }: {
30
+ index: number;
31
+ error: Error;
32
+ }) => string;
33
+ readonly UNKNOWN: () => string;
34
+ };
35
+ type VigorErrorCode = keyof typeof VIGOR_ERROR_MESSAGES;
36
+ type ErrorData<C extends VigorErrorCode> = Parameters<typeof VIGOR_ERROR_MESSAGES[C]> extends [infer A] ? A : undefined;
37
+ type VigorErrorOptions<C extends VigorErrorCode> = {
2
38
  method?: string;
3
39
  cause?: unknown;
4
40
  context?: unknown;
5
41
  type?: string;
6
- data?: T;
42
+ data: ErrorData<C>;
7
43
  };
8
- declare abstract class VigorError<D = unknown> extends Error {
44
+ declare abstract class VigorError<C extends VigorErrorCode> extends Error {
9
45
  readonly timestamp: Date;
10
46
  readonly method?: string;
47
+ readonly code: C;
11
48
  readonly cause?: unknown;
12
49
  readonly context?: unknown;
13
50
  readonly type?: string;
14
- readonly data?: D;
15
- constructor(message: string, options: VigorErrorOptions<D>);
51
+ readonly data: ErrorData<C>;
52
+ constructor(code: C, options: VigorErrorOptions<C>);
16
53
  }
17
- type VigorRetryErrorData = Partial<{
18
- limit: number;
19
- attempt: number;
20
- maxAttempts: number;
21
- }>;
22
- declare class VigorRetryError extends VigorError {
23
- constructor(message: string, options: VigorErrorOptions<VigorRetryErrorData>);
54
+ declare class VigorRetryError<C extends "TIMEOUT" | "EXHAUSTED"> extends VigorError<C> {
55
+ constructor(code: C, options: VigorErrorOptions<C>);
24
56
  }
25
- declare class VigorParseError extends VigorError {
26
- constructor(message: string, options: any);
57
+ declare class VigorParseError<C extends "PARSE_FAILED" | "INVALID_TYPE" | "TARGET_MISSING"> extends VigorError<C> {
58
+ constructor(code: C, options: VigorErrorOptions<C>);
27
59
  }
28
- declare class VigorFetchError extends VigorError {
29
- constructor(message: string, options: any);
60
+ declare class VigorFetchError<C extends "FETCH_ERROR" | "INVALID_URL" | "INVALID_PROTOCOL"> extends VigorError<C> {
61
+ constructor(code: C, options: VigorErrorOptions<C>);
30
62
  }
31
- declare class VigorAllError extends VigorError {
32
- constructor(message: string, options: any);
63
+ declare class VigorAllError<C extends "REQUEST_FAILED" | "TARGET_MISSING"> extends VigorError<C> {
64
+ constructor(code: C, options: VigorErrorOptions<C>);
33
65
  }
66
+ declare const EMPTY: unique symbol;
34
67
  declare abstract class VigorStatus<T> {
35
68
  protected readonly _base: T;
36
69
  protected readonly _config: T;
@@ -45,7 +78,7 @@ type VigorRetrySettingsConfig<T> = {
45
78
  count: number;
46
79
  limit: number;
47
80
  maxDelay: number;
48
- default?: T;
81
+ default?: T | typeof EMPTY;
49
82
  };
50
83
  declare class VigorRetrySettings<T> extends VigorStatus<VigorRetrySettingsConfig<T>> {
51
84
  constructor(config?: Partial<VigorRetrySettingsConfig<T>>);
@@ -92,11 +125,12 @@ type VigorRetryOnError<T> = {
92
125
  setResult: (result: T) => T;
93
126
  throwError: (error: Error) => void;
94
127
  };
95
- type VigorRetryBeforeFn<T> = (ctx: VigorRetryContext<T>, obj: VigorRetryBefore<T>) => void | Promise<void>;
96
- type VigorRetryAfterFn<T> = (ctx: VigorRetryContext<T>, obj: VigorRetryAfter<T>) => void | Promise<void>;
97
- type VigorRetryOnErrorFn<T> = (ctx: VigorRetryContext<T>, obj: VigorRetryOnError<T>) => void | Promise<void>;
98
- type VigorRetryOnRetryFn<T> = (ctx: VigorRetryContext<T>, obj: VigorRetryOnRetry<T>) => void | Promise<void>;
99
- type VigorRetryRetryIfFn<T> = (ctx: VigorRetryContext<T>, obj: VigorRetryRetryIf<T>) => void | Promise<void>;
128
+ type VigorRetryFn<T, O> = (ctx: VigorRetryContext<T>, obj: O) => void | any | Promise<void | any>;
129
+ type VigorRetryBeforeFn<T> = VigorRetryFn<T, VigorRetryBefore<T>>;
130
+ type VigorRetryAfterFn<T> = VigorRetryFn<T, VigorRetryAfter<T>>;
131
+ type VigorRetryOnErrorFn<T> = VigorRetryFn<T, VigorRetryOnError<T>>;
132
+ type VigorRetryOnRetryFn<T> = VigorRetryFn<T, VigorRetryOnRetry<T>>;
133
+ type VigorRetryRetryIfFn<T> = VigorRetryFn<T, VigorRetryRetryIf<T>>;
100
134
  type VigorRetryOptionsTask<T> = {
101
135
  abort?: (error: Error) => void;
102
136
  signal?: AbortSignal;
@@ -126,7 +160,7 @@ type VigorRetryConfig<T> = {
126
160
  };
127
161
  type VigorRetryContext<T> = VigorRetryConfig<T> & {
128
162
  runtime: {
129
- result?: T;
163
+ result?: T | typeof EMPTY;
130
164
  attempt: number;
131
165
  controller: AbortController;
132
166
  abortPromise?: Promise<never>;
@@ -181,7 +215,7 @@ type VigorFetchSettingsConfig<T> = {
181
215
  headers?: HeadersInit | Record<string, any>;
182
216
  body?: XMLHttpRequestBodyInit | object | null;
183
217
  options?: object;
184
- default?: T;
218
+ default?: T | typeof EMPTY;
185
219
  };
186
220
  declare class VigorFetchSettings<T> extends VigorStatus<VigorFetchSettingsConfig<T>> {
187
221
  constructor(config?: Partial<VigorFetchSettingsConfig<T>>);
@@ -211,7 +245,7 @@ type VigorFetchResult<T> = {
211
245
  setResult?: (result: T) => T;
212
246
  throwError?: (error: Error) => void;
213
247
  };
214
- type VigorFetchFn<T, O> = (ctx: VigorFetchContext<T>, obj: O) => void | Promise<void>;
248
+ type VigorFetchFn<T, O> = (ctx: VigorFetchContext<T>, obj: O) => void | any | Promise<void | any>;
215
249
  type VigorFetchBeforeFn<T> = VigorFetchFn<T, VigorFetchBefore<T>>;
216
250
  type VigorFetchAfterFn<T> = VigorFetchFn<T, VigorFetchAfter<T>>;
217
251
  type VigorFetchOnErrorFn<T> = VigorFetchFn<T, VigorFetchOnError<T>>;
@@ -244,7 +278,7 @@ type VigorFetchContext<T> = VigorFetchConfig<T> & {
244
278
  baseOptions?: object;
245
279
  options?: object;
246
280
  response?: Response;
247
- result?: T;
281
+ result?: T | typeof EMPTY;
248
282
  error?: unknown;
249
283
  };
250
284
  };
@@ -267,11 +301,13 @@ declare class VigorFetch<T> extends VigorStatus<VigorFetchConfig<T>> {
267
301
  type VigorAllSettingsConfig = {
268
302
  concurrency: number;
269
303
  jitter: number;
304
+ onlySuccess: boolean;
270
305
  };
271
306
  declare class VigorAllSettings extends VigorStatus<VigorAllSettingsConfig> {
272
307
  constructor(config?: Partial<VigorAllSettingsConfig>);
273
308
  concurrency(num: number): VigorAllSettings;
274
309
  jitter(num: number): VigorAllSettings;
310
+ onlySuccess(bool: boolean): VigorAllSettings;
275
311
  }
276
312
  type VigorAllBefore = {
277
313
  throwError?: (error: Error) => void;
@@ -288,10 +324,11 @@ type VigorAllResult = {
288
324
  setResult?: (result: Array<any>) => Array<any>;
289
325
  throwError?: (error: Error) => void;
290
326
  };
291
- type VigorAllFn<O> = (ctx: VigorAllContext<any>, obj: O) => void | Promise<void>;
292
- type VigorAllBeforeFn = VigorAllFn<VigorAllBefore>;
293
- type VigorAllAfterFn = VigorAllFn<VigorAllAfter>;
294
- type VigorAllOnErrorFn = VigorAllFn<VigorAllOnError>;
327
+ type VigorAllFn<O> = (ctx: VigorAllContext<any>, obj: O) => void | any | Promise<void | any>;
328
+ type VigorAllTaskFn<O> = (ctx: VigorAllTaskContext<any>, obj: O) => void | any | Promise<void | any>;
329
+ type VigorAllBeforeFn = VigorAllTaskFn<VigorAllBefore>;
330
+ type VigorAllAfterFn = VigorAllTaskFn<VigorAllAfter>;
331
+ type VigorAllOnErrorFn = VigorAllTaskFn<VigorAllOnError>;
295
332
  type VigorAllResultFn = VigorAllFn<VigorAllResult>;
296
333
  type VigorAllInterceptorsConfig = {
297
334
  before: VigorAllBeforeFn[];
@@ -310,18 +347,17 @@ type VigorAllOptionsTask = {
310
347
  abort?: (error: Error) => void;
311
348
  signal?: AbortSignal;
312
349
  };
313
- type VigorAllTask<R = any> = (ctx: VigorAllContext<any>, obj: VigorAllOptionsTask) => R | Promise<R>;
350
+ type VigorAllTask<R = any> = (ctx: VigorAllTaskContext<any>, obj: VigorAllOptionsTask) => R | Promise<R>;
314
351
  type TaskReturn<T> = T extends VigorAllTask<infer R> ? R : never;
315
352
  type MapTasks<T extends readonly VigorAllTask<any>[]> = {
316
353
  [K in keyof T]: T[K] extends VigorAllTask<infer R> ? R : never;
317
354
  };
318
- type VigorAllConfig = {
319
- target: VigorAllTask<any>[];
355
+ type VigorAllConfig<Tasks extends readonly VigorAllTask<any>[]> = {
356
+ target: Tasks;
320
357
  setting: VigorAllSettingsConfig;
321
358
  interceptors: VigorAllInterceptorsConfig;
322
359
  };
323
- type VigorAllContext<Tasks extends readonly VigorAllTask<any>[]> = {
324
- target: Tasks;
360
+ type VigorAllContext<Tasks extends readonly VigorAllTask<any>[]> = VigorAllConfig<Tasks> & {
325
361
  runtime: {
326
362
  tasks: {
327
363
  [K in keyof Tasks]: Promise<TaskReturn<Tasks[K]>>;
@@ -331,9 +367,18 @@ type VigorAllContext<Tasks extends readonly VigorAllTask<any>[]> = {
331
367
  };
332
368
  };
333
369
  };
334
- declare class VigorAll<Tasks extends readonly VigorAllTask<any>[]> extends VigorStatus<VigorAllConfig> {
335
- constructor(config?: Partial<VigorAllConfig>);
336
- target(...funcs: VigorIncludeSpread<VigorAllTask<any>>): VigorAll<Tasks>;
370
+ type VigorAllTaskContext<Task extends VigorAllTask<any>> = {
371
+ target: Task;
372
+ runtime: {
373
+ result: TaskReturn<Task> | typeof EMPTY;
374
+ error: unknown;
375
+ jitter: number;
376
+ };
377
+ };
378
+ declare class VigorAll<Tasks extends readonly VigorAllTask<any>[]> extends VigorStatus<VigorAllConfig<Tasks>> {
379
+ constructor(config?: Partial<VigorAllConfig<Tasks>>);
380
+ private _transfer;
381
+ target<T extends readonly VigorAllTask<any>[]>(...funcs: T): VigorAll<T>;
337
382
  setting(func: (r: VigorAllSettings) => VigorAllSettings): this;
338
383
  interceptors(func: (r: VigorAllInterceptors) => VigorAllInterceptors): this;
339
384
  request(): Promise<MapTasks<Tasks>>;
@@ -370,7 +415,7 @@ declare class Vigor {
370
415
  private readonly registry;
371
416
  constructor(config?: Partial<VigorConfig>);
372
417
  fetch(origin: string): VigorFetch<unknown>;
373
- all<T extends VigorAllTask<any>[] | readonly VigorAllTask<any>[]>(...args: T extends any ? (T[number] | T)[] : never): VigorAll<any>;
418
+ all<T extends VigorAllTask<any>[] | readonly VigorAllTask<any>[]>(...args: T extends any ? (T[number] | T)[] : never): VigorAll<VigorAllTask<any>[]>;
374
419
  parse(response: Response): VigorParse<unknown, false>;
375
420
  retry<T>(fn: VigorRetryTask<T>): VigorRetry<T>;
376
421
  use(plugin: (ctx: VigorRegistry, options?: object) => void, options?: object): Vigor;
@@ -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
@@ -2,44 +2,61 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ const VIGOR_ERROR_MESSAGES = {
6
+ TIMEOUT: ({ limit, attempt }) => `Timeout: exceeded ${limit}ms (attempt: ${attempt})`,
7
+ EXHAUSTED: ({ maxAttempts }) => `Retry exhausted: max ${maxAttempts})`,
8
+ INVALID_URL: ({ received }) => `Invalid URL: ${received}`,
9
+ INVALID_PROTOCOL: ({ expected, received }) => `Invalid protocol: ${received} (expected ${expected.join(", ")})`,
10
+ FETCH_ERROR: ({ status, statusText, url }) => `HTTP Error: ${status} ${statusText} (url: ${url})`,
11
+ PARSE_FAILED: ({ expected }) => `Parse failed: expected ${expected}`,
12
+ INVALID_TYPE: ({ expected, received }) => `Invalid parser type: ${expected}`,
13
+ TARGET_MISSING: () => `Target missing`,
14
+ REQUEST_FAILED: ({ index, error }) => `Request failed at index ${index}: ${error.message}`,
15
+ UNKNOWN: () => `Unknown error`
16
+ };
5
17
  class VigorError extends Error {
6
18
  timestamp = new Date();
7
19
  method;
20
+ code;
8
21
  cause;
9
22
  context;
10
23
  type;
11
24
  data;
12
- constructor(message, options) {
25
+ constructor(code, options) {
26
+ const messageFn = VIGOR_ERROR_MESSAGES[code];
27
+ const message = `[${code}] ${messageFn(options?.data)}`;
13
28
  super(message, { cause: options?.cause });
14
29
  this.name = new.target.name;
15
30
  this.method = options?.method;
31
+ this.code = code;
16
32
  this.context = options?.context;
17
33
  this.type = options?.type;
18
- this.data = options?.data;
34
+ this.data = options.data;
19
35
  Object.setPrototypeOf(this, new.target.prototype);
20
36
  Error.captureStackTrace?.(this, new.target);
21
37
  }
22
38
  }
23
39
  class VigorRetryError extends VigorError {
24
- constructor(message, options) {
25
- super(message, options);
40
+ constructor(code, options) {
41
+ super(code, options);
26
42
  }
27
43
  }
28
44
  class VigorParseError extends VigorError {
29
- constructor(message, options) {
30
- super(message, options);
45
+ constructor(code, options) {
46
+ super(code, options);
31
47
  }
32
48
  }
33
49
  class VigorFetchError extends VigorError {
34
- constructor(message, options) {
35
- super(message, options);
50
+ constructor(code, options) {
51
+ super(code, options);
36
52
  }
37
53
  }
38
54
  class VigorAllError extends VigorError {
39
- constructor(message, options) {
40
- super(message, options);
55
+ constructor(code, options) {
56
+ super(code, options);
41
57
  }
42
58
  }
59
+ const EMPTY = Symbol("EMPTY");
43
60
  class VigorStatus {
44
61
  _base;
45
62
  _config;
@@ -60,6 +77,7 @@ class VigorRetrySettings extends VigorStatus {
60
77
  count: 5,
61
78
  limit: 10000,
62
79
  maxDelay: 10000,
80
+ default: EMPTY
63
81
  });
64
82
  }
65
83
  count(num) { return this._next({ count: num }); }
@@ -138,7 +156,7 @@ class VigorRetry extends VigorStatus {
138
156
  backoff: { ...config.backoff },
139
157
  controller: config.controller,
140
158
  runtime: {
141
- result: null,
159
+ result: EMPTY,
142
160
  controller: null,
143
161
  attempt: 0,
144
162
  aborted: false,
@@ -179,9 +197,12 @@ class VigorRetry extends VigorStatus {
179
197
  timerId = setTimeout(() => {
180
198
  if (ctx.runtime.aborted)
181
199
  return;
182
- abort(new VigorRetryError(`timeouted after ${ctx.setting.limit}`, {
183
- method: "request", type: "timeout", data: {
184
- limit: ctx.setting.limit, attempt: ctx.runtime.attempt
200
+ abort(new VigorRetryError("TIMEOUT", {
201
+ method: "request",
202
+ type: "timeout",
203
+ data: {
204
+ limit: ctx.setting.limit,
205
+ attempt: ctx.runtime.attempt
185
206
  }
186
207
  }));
187
208
  }, ctx.setting.limit);
@@ -240,9 +261,11 @@ class VigorRetry extends VigorStatus {
240
261
  }
241
262
  ctx.runtime.attempt++;
242
263
  }
243
- throw new VigorRetryError(`Maximum retry attempts (${ctx.setting.count}) reached. Task failed or timed out.`, {
244
- method: "request", type: "exhausted", data: {
245
- limit: ctx.setting.limit, attempt: ctx.runtime.attempt, maxAttempts: ctx.setting.count
264
+ throw new VigorRetryError("EXHAUSTED", {
265
+ method: "request",
266
+ type: "retry",
267
+ data: {
268
+ maxAttempts: ctx.setting.count,
246
269
  }
247
270
  });
248
271
  }
@@ -253,9 +276,9 @@ class VigorRetry extends VigorStatus {
253
276
  for (const func of ctx.interceptors.onError) {
254
277
  await func(ctx, { setResult, throwError });
255
278
  }
256
- if (overrided && ctx.runtime.result !== undefined)
279
+ if (overrided && ctx.runtime.result !== EMPTY)
257
280
  return ctx.runtime.result;
258
- if (ctx.setting.default !== undefined)
281
+ if (ctx.setting.default !== EMPTY)
259
282
  return ctx.setting.default;
260
283
  throw error;
261
284
  }
@@ -282,11 +305,10 @@ class VigorParse extends VigorStatus {
282
305
  async request() {
283
306
  const config = this._config;
284
307
  if (!(config.target instanceof Response)) {
285
- throw new VigorParseError(`target not found`, {
286
- method: "request", type: "args_missing", data: {
287
- expected: "Response",
288
- received: config.target
289
- }
308
+ throw new VigorParseError("TARGET_MISSING", {
309
+ method: "request",
310
+ type: "args_missing",
311
+ data: undefined
290
312
  });
291
313
  }
292
314
  if (config.original) {
@@ -299,12 +321,13 @@ class VigorParse extends VigorStatus {
299
321
  strategy = { type: config.type };
300
322
  const parser = config.target[config.type];
301
323
  if (!parser || typeof parser !== 'function')
302
- throw new VigorParseError(`failed to parse: '${strategy?.type ?? "unknown"}'`, { method: "request", type: "invalid_type", data: {
303
- expected: config.type,
304
- supported: VigorParse.supported,
305
- response: config.target,
306
- headers: contentType,
307
- } });
324
+ throw new VigorParseError("PARSE_FAILED", {
325
+ method: "request",
326
+ type: "parse_failed",
327
+ data: {
328
+ expected: strategy?.type ?? "unknown"
329
+ }
330
+ });
308
331
  return await parser();
309
332
  }
310
333
  strategy = VigorParse.stategy.find(i => i.key.test(contentType)) ?? VigorParse.stategy[0];
@@ -313,13 +336,13 @@ class VigorParse extends VigorStatus {
313
336
  catch (error) {
314
337
  if (error instanceof VigorParseError)
315
338
  throw error;
316
- throw new VigorParseError(`failed to parse: '${strategy?.type ?? "unknown"}'`, { method: "request", type: "parse_failed", data: {
317
- expected: strategy?.type ?? "unknown",
318
- supported: VigorParse.supported,
319
- response: config.target,
320
- headers: contentType,
321
- error
322
- } });
339
+ throw new VigorParseError("PARSE_FAILED", {
340
+ method: "request",
341
+ type: "parse_failed",
342
+ data: {
343
+ expected: strategy?.type ?? "unknown"
344
+ }
345
+ });
323
346
  }
324
347
  }
325
348
  }
@@ -331,6 +354,7 @@ class VigorFetchSettings extends VigorStatus {
331
354
  query: {},
332
355
  unretry: [400, 401, 403, 404, 405, 413, 422],
333
356
  retryHeaders: ["retry-after", "ratelimit-reset", "x-ratelimit-reset", "x-retry-after", "x-amz-retry-after", "chrome-proxy-next-link"],
357
+ default: EMPTY
334
358
  });
335
359
  }
336
360
  origin(str) { return this._next({ origin: str }); }
@@ -388,11 +412,9 @@ class VigorFetch extends VigorStatus {
388
412
  }
389
413
  buildUrl(origin, path, query) {
390
414
  if (!origin)
391
- throw new VigorFetchError(`Invalid URL origin: ${origin}`, {
392
- type: "invalid_url",
415
+ throw new VigorFetchError("INVALID_URL", {
393
416
  method: "buildUrl",
394
417
  data: {
395
- expected: "string",
396
418
  received: origin
397
419
  }
398
420
  });
@@ -443,15 +465,21 @@ class VigorFetch extends VigorStatus {
443
465
  onError: [...config.interceptors.onError],
444
466
  result: [...config.interceptors.result]
445
467
  },
446
- runtime: {}
468
+ runtime: {
469
+ result: EMPTY
470
+ }
447
471
  };
448
472
  const throwError = (error) => { throw error; };
449
473
  try {
450
474
  ctx.runtime.unretrySet = new Set(ctx.setting.unretry);
451
475
  if (!/^(https?|data|blob|file|about):\/\//.test(ctx.setting.origin))
452
- throw new VigorFetchError(`Invalid Protocol`, { type: "Invalid Protocol", method: "request", data: {
453
- expected: ["http", "https", "data", "blob", "file", "about"], received: ctx.setting.origin
454
- } });
476
+ throw new VigorFetchError("INVALID_PROTOCOL", {
477
+ method: "request",
478
+ data: {
479
+ expected: ["http", "https", "data", "blob", "file", "about"],
480
+ received: ctx.setting.origin
481
+ }
482
+ });
455
483
  ctx.runtime.url = this.buildUrl(config.setting.origin, config.setting.path, config.setting.query);
456
484
  const isJson = Array.isArray(ctx.setting.body) || (!!ctx.setting.body && Object.getPrototypeOf(ctx.setting.body) === Object.prototype);
457
485
  ctx.runtime.baseOptions = {
@@ -472,9 +500,14 @@ class VigorFetch extends VigorStatus {
472
500
  const checkOk = async (ctx2, { throwError }) => {
473
501
  const result = ctx2.runtime.result;
474
502
  if (!result.ok)
475
- return throwError?.(new VigorFetchError(`HTTP Error: ${result.status} ${result.statusText}`, {
476
- method: "request", type: "fetch_error",
477
- data: { status: result.status, statusText: result.statusText, url: result.url }
503
+ return throwError?.(new VigorFetchError("FETCH_ERROR", {
504
+ method: "request",
505
+ type: "fetch_error",
506
+ data: {
507
+ status: result.status,
508
+ statusText: result.statusText,
509
+ url: result.url
510
+ }
478
511
  }));
479
512
  };
480
513
  const handleBlacklist = (ctx2, { cancelRetry }) => {
@@ -520,9 +553,9 @@ class VigorFetch extends VigorStatus {
520
553
  for (const func of ctx.interceptors.onError) {
521
554
  await func(ctx, { setResult, throwError });
522
555
  }
523
- if (overrided && ctx.runtime.result !== undefined)
556
+ if (overrided && ctx.runtime.result !== EMPTY)
524
557
  return ctx.runtime.result;
525
- if (ctx.setting.default !== undefined)
558
+ if (ctx.setting.default !== EMPTY)
526
559
  return ctx.setting.default;
527
560
  throw error;
528
561
  }
@@ -532,11 +565,13 @@ class VigorAllSettings extends VigorStatus {
532
565
  constructor(config = {}) {
533
566
  super(config, {
534
567
  concurrency: 5,
535
- jitter: 1000
568
+ jitter: 1000,
569
+ onlySuccess: false
536
570
  });
537
571
  }
538
572
  concurrency(num) { return this._next({ concurrency: num }); }
539
573
  jitter(num) { return this._next({ jitter: num }); }
574
+ onlySuccess(bool) { return this._next({ onlySuccess: bool }); }
540
575
  }
541
576
  class VigorAllInterceptors extends VigorStatus {
542
577
  constructor(config = {}) {
@@ -560,9 +595,15 @@ class VigorAll extends VigorStatus {
560
595
  interceptors: new VigorAllInterceptors().getBase()
561
596
  });
562
597
  }
598
+ _transfer(config) {
599
+ return new VigorAll({
600
+ ...this._config,
601
+ ...config
602
+ });
603
+ }
563
604
  target(...funcs) {
564
- return this._next({
565
- target: [...this._config.target, ...funcs.flat()]
605
+ return this._transfer({
606
+ target: funcs
566
607
  });
567
608
  }
568
609
  setting(func) {
@@ -578,20 +619,23 @@ class VigorAll extends VigorStatus {
578
619
  async request() {
579
620
  const config = this._config;
580
621
  let ctx = {
622
+ setting: { ...config.setting },
581
623
  target: [...config.target],
624
+ interceptors: {
625
+ before: [...config.interceptors.before],
626
+ after: [...config.interceptors.after],
627
+ onError: [...config.interceptors.onError],
628
+ result: [...config.interceptors.result],
629
+ },
582
630
  runtime: {
583
631
  tasks: [],
584
- result: []
632
+ result: [],
585
633
  }
586
634
  };
587
635
  if (ctx.target.length == 0)
588
- throw new VigorFetchError("request expects 'target'", {
589
- type: "invalid_input",
636
+ throw new VigorAllError("TARGET_MISSING", {
590
637
  method: "request",
591
- data: {
592
- expected: "string",
593
- received: ctx.target
594
- }
638
+ data: undefined
595
639
  });
596
640
  let active = 0;
597
641
  const queue = [];
@@ -609,32 +653,42 @@ class VigorAll extends VigorStatus {
609
653
  }
610
654
  });
611
655
  const throwError = (error) => { throw error; };
656
+ let ctxTask = {
657
+ target: task,
658
+ runtime: {
659
+ result: EMPTY,
660
+ error: null,
661
+ jitter: VigorRetryBackoff.randomJitter(config.setting.jitter)
662
+ }
663
+ };
612
664
  try {
613
- await new Promise(resolve => setTimeout(resolve, VigorRetryBackoff.randomJitter(config.setting.jitter)));
614
- let res;
665
+ await new Promise(resolve => setTimeout(resolve, ctxTask.runtime.jitter));
615
666
  for (const func of config.interceptors.before) {
616
- await func(ctx, { throwError });
667
+ await func(ctxTask, { throwError });
617
668
  }
618
- res = await task(ctx, {});
619
- const setResult = (result) => res = result;
669
+ ctxTask.runtime.result = await task(ctxTask, {});
670
+ const setResult = (result) => ctxTask.runtime.result = result;
620
671
  for (const func of config.interceptors.after) {
621
- await func(ctx, { setResult, throwError });
672
+ await func(ctxTask, { setResult, throwError });
622
673
  }
623
- return res;
674
+ if (ctxTask.runtime.result === EMPTY) {
675
+ throw new Error("Result not set");
676
+ }
677
+ return ctxTask.runtime.result;
624
678
  }
625
679
  catch (error) {
626
- let res;
680
+ ctxTask.runtime.error = error;
627
681
  let overrided = false;
628
682
  const setResult = (result) => {
629
683
  overrided = true;
630
- return (res = result);
684
+ return (ctxTask.runtime.result = result);
631
685
  };
632
686
  for (const func of config.interceptors.onError) {
633
- await func(ctx, { setResult, throwError });
687
+ await func(ctxTask, { setResult, throwError });
634
688
  }
635
- if (overrided && res !== undefined)
636
- return res;
637
- throw error;
689
+ if (overrided && ctxTask.runtime.result !== EMPTY)
690
+ return ctxTask.runtime.result;
691
+ throw ctxTask.runtime.error;
638
692
  }
639
693
  finally {
640
694
  active--;
@@ -645,17 +699,20 @@ class VigorAll extends VigorStatus {
645
699
  };
646
700
  ctx.runtime.tasks = ctx.target.map(task => runTask(task));
647
701
  const settled = await Promise.allSettled(ctx.runtime.tasks);
648
- ctx.runtime.result = settled.map(i => {
649
- if (i.status === "fulfilled")
650
- return i.value;
651
- return new VigorAllError(`this request failed`, {
702
+ const isFailed = Symbol("FAILED");
703
+ ctx.runtime.result = settled.map((res, idx) => {
704
+ if (res.status === "fulfilled")
705
+ return res.value;
706
+ if (ctx.setting.onlySuccess)
707
+ return isFailed;
708
+ return new VigorAllError("REQUEST_FAILED", {
652
709
  method: "request",
653
- type: "request_failed",
654
710
  data: {
655
- error: i.reason
711
+ index: idx,
712
+ error: res.reason
656
713
  }
657
714
  });
658
- });
715
+ }).filter(i => i !== isFailed);
659
716
  const setResult = (result) => ctx.runtime.result = result;
660
717
  const throwError = (error) => { throw error; };
661
718
  for (const func of config.interceptors.result) {
package/dist/index.mjs CHANGED
@@ -1,41 +1,58 @@
1
+ const VIGOR_ERROR_MESSAGES = {
2
+ TIMEOUT: ({ limit, attempt }) => `Timeout: exceeded ${limit}ms (attempt: ${attempt})`,
3
+ EXHAUSTED: ({ maxAttempts }) => `Retry exhausted: max ${maxAttempts})`,
4
+ INVALID_URL: ({ received }) => `Invalid URL: ${received}`,
5
+ INVALID_PROTOCOL: ({ expected, received }) => `Invalid protocol: ${received} (expected ${expected.join(", ")})`,
6
+ FETCH_ERROR: ({ status, statusText, url }) => `HTTP Error: ${status} ${statusText} (url: ${url})`,
7
+ PARSE_FAILED: ({ expected }) => `Parse failed: expected ${expected}`,
8
+ INVALID_TYPE: ({ expected, received }) => `Invalid parser type: ${expected}`,
9
+ TARGET_MISSING: () => `Target missing`,
10
+ REQUEST_FAILED: ({ index, error }) => `Request failed at index ${index}: ${error.message}`,
11
+ UNKNOWN: () => `Unknown error`
12
+ };
1
13
  class VigorError extends Error {
2
14
  timestamp = new Date();
3
15
  method;
16
+ code;
4
17
  cause;
5
18
  context;
6
19
  type;
7
20
  data;
8
- constructor(message, options) {
21
+ constructor(code, options) {
22
+ const messageFn = VIGOR_ERROR_MESSAGES[code];
23
+ const message = `[${code}] ${messageFn(options?.data)}`;
9
24
  super(message, { cause: options?.cause });
10
25
  this.name = new.target.name;
11
26
  this.method = options?.method;
27
+ this.code = code;
12
28
  this.context = options?.context;
13
29
  this.type = options?.type;
14
- this.data = options?.data;
30
+ this.data = options.data;
15
31
  Object.setPrototypeOf(this, new.target.prototype);
16
32
  Error.captureStackTrace?.(this, new.target);
17
33
  }
18
34
  }
19
35
  class VigorRetryError extends VigorError {
20
- constructor(message, options) {
21
- super(message, options);
36
+ constructor(code, options) {
37
+ super(code, options);
22
38
  }
23
39
  }
24
40
  class VigorParseError extends VigorError {
25
- constructor(message, options) {
26
- super(message, options);
41
+ constructor(code, options) {
42
+ super(code, options);
27
43
  }
28
44
  }
29
45
  class VigorFetchError extends VigorError {
30
- constructor(message, options) {
31
- super(message, options);
46
+ constructor(code, options) {
47
+ super(code, options);
32
48
  }
33
49
  }
34
50
  class VigorAllError extends VigorError {
35
- constructor(message, options) {
36
- super(message, options);
51
+ constructor(code, options) {
52
+ super(code, options);
37
53
  }
38
54
  }
55
+ const EMPTY = Symbol("EMPTY");
39
56
  class VigorStatus {
40
57
  _base;
41
58
  _config;
@@ -56,6 +73,7 @@ class VigorRetrySettings extends VigorStatus {
56
73
  count: 5,
57
74
  limit: 10000,
58
75
  maxDelay: 10000,
76
+ default: EMPTY
59
77
  });
60
78
  }
61
79
  count(num) { return this._next({ count: num }); }
@@ -134,7 +152,7 @@ class VigorRetry extends VigorStatus {
134
152
  backoff: { ...config.backoff },
135
153
  controller: config.controller,
136
154
  runtime: {
137
- result: null,
155
+ result: EMPTY,
138
156
  controller: null,
139
157
  attempt: 0,
140
158
  aborted: false,
@@ -175,9 +193,12 @@ class VigorRetry extends VigorStatus {
175
193
  timerId = setTimeout(() => {
176
194
  if (ctx.runtime.aborted)
177
195
  return;
178
- abort(new VigorRetryError(`timeouted after ${ctx.setting.limit}`, {
179
- method: "request", type: "timeout", data: {
180
- limit: ctx.setting.limit, attempt: ctx.runtime.attempt
196
+ abort(new VigorRetryError("TIMEOUT", {
197
+ method: "request",
198
+ type: "timeout",
199
+ data: {
200
+ limit: ctx.setting.limit,
201
+ attempt: ctx.runtime.attempt
181
202
  }
182
203
  }));
183
204
  }, ctx.setting.limit);
@@ -236,9 +257,11 @@ class VigorRetry extends VigorStatus {
236
257
  }
237
258
  ctx.runtime.attempt++;
238
259
  }
239
- throw new VigorRetryError(`Maximum retry attempts (${ctx.setting.count}) reached. Task failed or timed out.`, {
240
- method: "request", type: "exhausted", data: {
241
- limit: ctx.setting.limit, attempt: ctx.runtime.attempt, maxAttempts: ctx.setting.count
260
+ throw new VigorRetryError("EXHAUSTED", {
261
+ method: "request",
262
+ type: "retry",
263
+ data: {
264
+ maxAttempts: ctx.setting.count,
242
265
  }
243
266
  });
244
267
  }
@@ -249,9 +272,9 @@ class VigorRetry extends VigorStatus {
249
272
  for (const func of ctx.interceptors.onError) {
250
273
  await func(ctx, { setResult, throwError });
251
274
  }
252
- if (overrided && ctx.runtime.result !== undefined)
275
+ if (overrided && ctx.runtime.result !== EMPTY)
253
276
  return ctx.runtime.result;
254
- if (ctx.setting.default !== undefined)
277
+ if (ctx.setting.default !== EMPTY)
255
278
  return ctx.setting.default;
256
279
  throw error;
257
280
  }
@@ -278,11 +301,10 @@ class VigorParse extends VigorStatus {
278
301
  async request() {
279
302
  const config = this._config;
280
303
  if (!(config.target instanceof Response)) {
281
- throw new VigorParseError(`target not found`, {
282
- method: "request", type: "args_missing", data: {
283
- expected: "Response",
284
- received: config.target
285
- }
304
+ throw new VigorParseError("TARGET_MISSING", {
305
+ method: "request",
306
+ type: "args_missing",
307
+ data: undefined
286
308
  });
287
309
  }
288
310
  if (config.original) {
@@ -295,12 +317,13 @@ class VigorParse extends VigorStatus {
295
317
  strategy = { type: config.type };
296
318
  const parser = config.target[config.type];
297
319
  if (!parser || typeof parser !== 'function')
298
- throw new VigorParseError(`failed to parse: '${strategy?.type ?? "unknown"}'`, { method: "request", type: "invalid_type", data: {
299
- expected: config.type,
300
- supported: VigorParse.supported,
301
- response: config.target,
302
- headers: contentType,
303
- } });
320
+ throw new VigorParseError("PARSE_FAILED", {
321
+ method: "request",
322
+ type: "parse_failed",
323
+ data: {
324
+ expected: strategy?.type ?? "unknown"
325
+ }
326
+ });
304
327
  return await parser();
305
328
  }
306
329
  strategy = VigorParse.stategy.find(i => i.key.test(contentType)) ?? VigorParse.stategy[0];
@@ -309,13 +332,13 @@ class VigorParse extends VigorStatus {
309
332
  catch (error) {
310
333
  if (error instanceof VigorParseError)
311
334
  throw error;
312
- throw new VigorParseError(`failed to parse: '${strategy?.type ?? "unknown"}'`, { method: "request", type: "parse_failed", data: {
313
- expected: strategy?.type ?? "unknown",
314
- supported: VigorParse.supported,
315
- response: config.target,
316
- headers: contentType,
317
- error
318
- } });
335
+ throw new VigorParseError("PARSE_FAILED", {
336
+ method: "request",
337
+ type: "parse_failed",
338
+ data: {
339
+ expected: strategy?.type ?? "unknown"
340
+ }
341
+ });
319
342
  }
320
343
  }
321
344
  }
@@ -327,6 +350,7 @@ class VigorFetchSettings extends VigorStatus {
327
350
  query: {},
328
351
  unretry: [400, 401, 403, 404, 405, 413, 422],
329
352
  retryHeaders: ["retry-after", "ratelimit-reset", "x-ratelimit-reset", "x-retry-after", "x-amz-retry-after", "chrome-proxy-next-link"],
353
+ default: EMPTY
330
354
  });
331
355
  }
332
356
  origin(str) { return this._next({ origin: str }); }
@@ -384,11 +408,9 @@ class VigorFetch extends VigorStatus {
384
408
  }
385
409
  buildUrl(origin, path, query) {
386
410
  if (!origin)
387
- throw new VigorFetchError(`Invalid URL origin: ${origin}`, {
388
- type: "invalid_url",
411
+ throw new VigorFetchError("INVALID_URL", {
389
412
  method: "buildUrl",
390
413
  data: {
391
- expected: "string",
392
414
  received: origin
393
415
  }
394
416
  });
@@ -439,15 +461,21 @@ class VigorFetch extends VigorStatus {
439
461
  onError: [...config.interceptors.onError],
440
462
  result: [...config.interceptors.result]
441
463
  },
442
- runtime: {}
464
+ runtime: {
465
+ result: EMPTY
466
+ }
443
467
  };
444
468
  const throwError = (error) => { throw error; };
445
469
  try {
446
470
  ctx.runtime.unretrySet = new Set(ctx.setting.unretry);
447
471
  if (!/^(https?|data|blob|file|about):\/\//.test(ctx.setting.origin))
448
- throw new VigorFetchError(`Invalid Protocol`, { type: "Invalid Protocol", method: "request", data: {
449
- expected: ["http", "https", "data", "blob", "file", "about"], received: ctx.setting.origin
450
- } });
472
+ throw new VigorFetchError("INVALID_PROTOCOL", {
473
+ method: "request",
474
+ data: {
475
+ expected: ["http", "https", "data", "blob", "file", "about"],
476
+ received: ctx.setting.origin
477
+ }
478
+ });
451
479
  ctx.runtime.url = this.buildUrl(config.setting.origin, config.setting.path, config.setting.query);
452
480
  const isJson = Array.isArray(ctx.setting.body) || (!!ctx.setting.body && Object.getPrototypeOf(ctx.setting.body) === Object.prototype);
453
481
  ctx.runtime.baseOptions = {
@@ -468,9 +496,14 @@ class VigorFetch extends VigorStatus {
468
496
  const checkOk = async (ctx2, { throwError }) => {
469
497
  const result = ctx2.runtime.result;
470
498
  if (!result.ok)
471
- return throwError?.(new VigorFetchError(`HTTP Error: ${result.status} ${result.statusText}`, {
472
- method: "request", type: "fetch_error",
473
- data: { status: result.status, statusText: result.statusText, url: result.url }
499
+ return throwError?.(new VigorFetchError("FETCH_ERROR", {
500
+ method: "request",
501
+ type: "fetch_error",
502
+ data: {
503
+ status: result.status,
504
+ statusText: result.statusText,
505
+ url: result.url
506
+ }
474
507
  }));
475
508
  };
476
509
  const handleBlacklist = (ctx2, { cancelRetry }) => {
@@ -516,9 +549,9 @@ class VigorFetch extends VigorStatus {
516
549
  for (const func of ctx.interceptors.onError) {
517
550
  await func(ctx, { setResult, throwError });
518
551
  }
519
- if (overrided && ctx.runtime.result !== undefined)
552
+ if (overrided && ctx.runtime.result !== EMPTY)
520
553
  return ctx.runtime.result;
521
- if (ctx.setting.default !== undefined)
554
+ if (ctx.setting.default !== EMPTY)
522
555
  return ctx.setting.default;
523
556
  throw error;
524
557
  }
@@ -528,11 +561,13 @@ class VigorAllSettings extends VigorStatus {
528
561
  constructor(config = {}) {
529
562
  super(config, {
530
563
  concurrency: 5,
531
- jitter: 1000
564
+ jitter: 1000,
565
+ onlySuccess: false
532
566
  });
533
567
  }
534
568
  concurrency(num) { return this._next({ concurrency: num }); }
535
569
  jitter(num) { return this._next({ jitter: num }); }
570
+ onlySuccess(bool) { return this._next({ onlySuccess: bool }); }
536
571
  }
537
572
  class VigorAllInterceptors extends VigorStatus {
538
573
  constructor(config = {}) {
@@ -556,9 +591,15 @@ class VigorAll extends VigorStatus {
556
591
  interceptors: new VigorAllInterceptors().getBase()
557
592
  });
558
593
  }
594
+ _transfer(config) {
595
+ return new VigorAll({
596
+ ...this._config,
597
+ ...config
598
+ });
599
+ }
559
600
  target(...funcs) {
560
- return this._next({
561
- target: [...this._config.target, ...funcs.flat()]
601
+ return this._transfer({
602
+ target: funcs
562
603
  });
563
604
  }
564
605
  setting(func) {
@@ -574,20 +615,23 @@ class VigorAll extends VigorStatus {
574
615
  async request() {
575
616
  const config = this._config;
576
617
  let ctx = {
618
+ setting: { ...config.setting },
577
619
  target: [...config.target],
620
+ interceptors: {
621
+ before: [...config.interceptors.before],
622
+ after: [...config.interceptors.after],
623
+ onError: [...config.interceptors.onError],
624
+ result: [...config.interceptors.result],
625
+ },
578
626
  runtime: {
579
627
  tasks: [],
580
- result: []
628
+ result: [],
581
629
  }
582
630
  };
583
631
  if (ctx.target.length == 0)
584
- throw new VigorFetchError("request expects 'target'", {
585
- type: "invalid_input",
632
+ throw new VigorAllError("TARGET_MISSING", {
586
633
  method: "request",
587
- data: {
588
- expected: "string",
589
- received: ctx.target
590
- }
634
+ data: undefined
591
635
  });
592
636
  let active = 0;
593
637
  const queue = [];
@@ -605,32 +649,42 @@ class VigorAll extends VigorStatus {
605
649
  }
606
650
  });
607
651
  const throwError = (error) => { throw error; };
652
+ let ctxTask = {
653
+ target: task,
654
+ runtime: {
655
+ result: EMPTY,
656
+ error: null,
657
+ jitter: VigorRetryBackoff.randomJitter(config.setting.jitter)
658
+ }
659
+ };
608
660
  try {
609
- await new Promise(resolve => setTimeout(resolve, VigorRetryBackoff.randomJitter(config.setting.jitter)));
610
- let res;
661
+ await new Promise(resolve => setTimeout(resolve, ctxTask.runtime.jitter));
611
662
  for (const func of config.interceptors.before) {
612
- await func(ctx, { throwError });
663
+ await func(ctxTask, { throwError });
613
664
  }
614
- res = await task(ctx, {});
615
- const setResult = (result) => res = result;
665
+ ctxTask.runtime.result = await task(ctxTask, {});
666
+ const setResult = (result) => ctxTask.runtime.result = result;
616
667
  for (const func of config.interceptors.after) {
617
- await func(ctx, { setResult, throwError });
668
+ await func(ctxTask, { setResult, throwError });
618
669
  }
619
- return res;
670
+ if (ctxTask.runtime.result === EMPTY) {
671
+ throw new Error("Result not set");
672
+ }
673
+ return ctxTask.runtime.result;
620
674
  }
621
675
  catch (error) {
622
- let res;
676
+ ctxTask.runtime.error = error;
623
677
  let overrided = false;
624
678
  const setResult = (result) => {
625
679
  overrided = true;
626
- return (res = result);
680
+ return (ctxTask.runtime.result = result);
627
681
  };
628
682
  for (const func of config.interceptors.onError) {
629
- await func(ctx, { setResult, throwError });
683
+ await func(ctxTask, { setResult, throwError });
630
684
  }
631
- if (overrided && res !== undefined)
632
- return res;
633
- throw error;
685
+ if (overrided && ctxTask.runtime.result !== EMPTY)
686
+ return ctxTask.runtime.result;
687
+ throw ctxTask.runtime.error;
634
688
  }
635
689
  finally {
636
690
  active--;
@@ -641,17 +695,20 @@ class VigorAll extends VigorStatus {
641
695
  };
642
696
  ctx.runtime.tasks = ctx.target.map(task => runTask(task));
643
697
  const settled = await Promise.allSettled(ctx.runtime.tasks);
644
- ctx.runtime.result = settled.map(i => {
645
- if (i.status === "fulfilled")
646
- return i.value;
647
- return new VigorAllError(`this request failed`, {
698
+ const isFailed = Symbol("FAILED");
699
+ ctx.runtime.result = settled.map((res, idx) => {
700
+ if (res.status === "fulfilled")
701
+ return res.value;
702
+ if (ctx.setting.onlySuccess)
703
+ return isFailed;
704
+ return new VigorAllError("REQUEST_FAILED", {
648
705
  method: "request",
649
- type: "request_failed",
650
706
  data: {
651
- error: i.reason
707
+ index: idx,
708
+ error: res.reason
652
709
  }
653
710
  });
654
- });
711
+ }).filter(i => i !== isFailed);
655
712
  const setResult = (result) => ctx.runtime.result = result;
656
713
  const throwError = (error) => { throw error; };
657
714
  for (const func of config.interceptors.result) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vigor-fetch",
3
- "version": "2.1.1",
3
+ "version": "2.2.0",
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",