@dbs-portal/core-api
Version:
HTTP client and API utilities for DBS Portal
68 lines • 2.1 kB
TypeScript
/**
* Retry manager for failed requests
*/
import type { RetryConfig, ApiError } from '../types';
/**
* Retry manager for handling failed requests
*/
export declare class RetryManager {
private config;
constructor(config: RetryConfig);
/**
* Executes a function with retry logic
*/
execute<T>(operation: () => Promise<T>): Promise<T>;
/**
* Updates retry configuration
*/
updateConfig(config: Partial<RetryConfig>): void;
/**
* Gets current configuration
*/
getConfig(): RetryConfig;
/**
* Determines if an error should trigger a retry
*/
private shouldRetry;
/**
* Calculates retry delay
*/
private calculateDelay;
/**
* Creates a delay promise
*/
private delay;
/**
* Creates a retry manager with exponential backoff
*/
static exponentialBackoff(retries?: number, baseDelay?: number, maxDelay?: number): RetryManager;
/**
* Creates a retry manager with linear backoff
*/
static linearBackoff(retries?: number, delay?: number): RetryManager;
/**
* Creates a retry manager with fixed delay
*/
static fixedDelay(retries?: number, delay?: number): RetryManager;
/**
* Creates a retry manager for network errors only
*/
static networkErrorsOnly(retries?: number): RetryManager;
/**
* Creates a retry manager for server errors only
*/
static serverErrorsOnly(retries?: number): RetryManager;
/**
* Creates a retry manager with custom condition
*/
static custom(retries: number, retryCondition: (error: ApiError) => boolean, retryDelay?: number | ((retryCount: number) => number)): RetryManager;
/**
* Creates a retry manager that respects Retry-After headers
*/
static withRetryAfter(retries?: number): RetryManager;
/**
* Creates a retry manager with jitter to avoid thundering herd
*/
static withJitter(retries?: number, baseDelay?: number, maxDelay?: number, jitterFactor?: number): RetryManager;
}
//# sourceMappingURL=retry-manager.d.ts.map