@push.rocks/webrequest
Version:
Modern, fetch-compatible web request library with intelligent HTTP caching, retry strategies, and fault tolerance.
37 lines (36 loc) • 1.22 kB
TypeScript
/**
* Retry backoff strategies
*/
import type { TBackoffStrategy } from '../webrequest.types.js';
export interface IBackoffCalculator {
calculate(attempt: number, initialDelay: number, maxDelay: number): number;
}
/**
* Exponential backoff strategy
* Delay increases exponentially: initialDelay * 2^attempt
*/
export declare class ExponentialBackoff implements IBackoffCalculator {
calculate(attempt: number, initialDelay: number, maxDelay: number): number;
}
/**
* Linear backoff strategy
* Delay increases linearly: initialDelay * attempt
*/
export declare class LinearBackoff implements IBackoffCalculator {
calculate(attempt: number, initialDelay: number, maxDelay: number): number;
}
/**
* Constant backoff strategy
* Delay stays constant: initialDelay
*/
export declare class ConstantBackoff implements IBackoffCalculator {
calculate(attempt: number, initialDelay: number, maxDelay: number): number;
}
/**
* Get backoff calculator for a given strategy
*/
export declare function getBackoffCalculator(strategy: TBackoffStrategy): IBackoffCalculator;
/**
* Add jitter to delay to prevent thundering herd
*/
export declare function addJitter(delay: number, jitterFactor?: number): number;