Skip to main content

Classes & Interfaces

RetryMetrics

interface RetryMetrics
Retry metrics for tracking retry attempts

Properties

NameTypeDescription
totalAttemptsnumber-
totalDelaynumber-
lastError?any-

Functions

isRetryableError

function isRetryableError(error: any, retryableStatusCodes: number[]): boolean
Determines if an error is retryable based on the status code
ParameterTypeDescription
errorany-
retryableStatusCodesnumber[]-
Returns: boolean

calculateBackoffDelay

function calculateBackoffDelay(attempt: number, baseDelay: number, maxDelay: number, backoffMultiplier: number, enableJitter: boolean): number
Calculates the backoff delay for a given attempt using exponential backoff
ParameterTypeDescription
attemptnumber-
baseDelaynumber-
maxDelaynumber-
backoffMultipliernumber-
enableJitterboolean-
Returns: number

executeWithRetry

async function executeWithRetry(operation: () => Promise<T>, options: RetryOptions, onRetry?: (attempt: number, error: any, delay: number) => void): Promise<{ result: T; metrics: RetryMetrics }>
Executes an operation with retry logic and returns both result and metrics
ParameterTypeDescription
operation() => Promise<T>-
optionsRetryOptions-
onRetry(attempt: number, error: any, delay: number) => void-
Returns: Promise<{ result: T; metrics: RetryMetrics }>

Types

RetryOptions

type RetryOptions = {
  maxRetries: number;
  baseDelay: number;
  maxDelay: number;
  backoffMultiplier: number;
  retryableStatusCodes: number[];
  enableJitter: boolean;
}