diff options
| author | pack <pack@packgekko.xyz> | 2026-08-09 10:54:08 +0000 |
|---|---|---|
| committer | pack <pack@packgekko.xyz> | 2026-08-09 10:54:08 +0000 |
| commit | d3adc16a08d95d6e331de55d7d3bf05a66a874a8 (patch) | |
| tree | a2dabd199501e67c547c2ce79e1374ca3aa55443 /node_modules/exponential-backoff/src/options.ts | |
| parent | 55a4f1fc869e41aca748c63d3018f0448b1606e0 (diff) | |
| download | crud-d3adc16a08d95d6e331de55d7d3bf05a66a874a8.tar.gz | |
stop tracking node_modules/
Diffstat (limited to '')
| -rw-r--r-- | node_modules/exponential-backoff/src/options.ts | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/node_modules/exponential-backoff/src/options.ts b/node_modules/exponential-backoff/src/options.ts deleted file mode 100644 index ccdee3a..0000000 --- a/node_modules/exponential-backoff/src/options.ts +++ /dev/null @@ -1,76 +0,0 @@ -/** - * Type of jitter to apply to the delay. - * - `"none"`: no jitter is applied - * - `"full"`: full jitter is applied (random value between `0` and `delay`) - */ -export type JitterType = "none" | "full"; - -export type BackoffOptions = Partial<IBackOffOptions>; - -export interface IBackOffOptions { - /** - * Decides whether the `startingDelay` should be applied before the first call. - * If `false`, the first call will occur without a delay. - * @defaultValue `false` - */ - delayFirstAttempt: boolean; - /** - * Decides whether a [jitter](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/) - * should be applied to the delay. Possible values are `"full"` and `"none"`. - * @defaultValue `"none"` - */ - jitter: JitterType; - /** - * The maximum delay, in milliseconds, between two consecutive attempts. - * @defaultValue `Infinity` - */ - maxDelay: number; - /** - * The maximum number of times to attempt the function. - * Must be at least `1`. - * @defaultValue `10` - */ - numOfAttempts: number; - /** - * The `retry` function can be used to run logic after every failed attempt (e.g. logging a message, - * assessing the last error, etc.). - * It is called with the last error and the upcoming attempt number. - * Returning `true` will retry the function as long as the `numOfAttempts` has not been exceeded. - * Returning `false` will end the execution. - * @defaultValue a function that always returns `true`. - * @param e The last error thrown by the function. - * @param attemptNumber The upcoming attempt number. - * @returns `true` to retry the function, `false` to end the execution - */ - retry: (e: any, attemptNumber: number) => boolean | Promise<boolean>; - /** - * The delay, in milliseconds, before executing the function for the first time. - * @defaultValue `100` - */ - startingDelay: number; - /** - * The `startingDelay` is multiplied by the `timeMultiple` to increase the delay between reattempts. - * @defaultValue `2` - */ - timeMultiple: number; -} - -const defaultOptions: IBackOffOptions = { - delayFirstAttempt: false, - jitter: "none", - maxDelay: Infinity, - numOfAttempts: 10, - retry: () => true, - startingDelay: 100, - timeMultiple: 2 -}; - -export function getSanitizedOptions(options: BackoffOptions) { - const sanitized: IBackOffOptions = { ...defaultOptions, ...options }; - - if (sanitized.numOfAttempts < 1) { - sanitized.numOfAttempts = 1; - } - - return sanitized; -} |