UNPKG

@zlattice/lattice-js

Version:

Lattice blockchain TypeScript SDK with dual module support (CJS + ESM)

81 lines 2.2 kB
/** * RetryStrategy */ interface RetryStrategy { /** * Calculate delay based on attempt times * @param attempt Attempt times * @returns Delay time */ getDelay(attempt: number): number; /** * Max timeout */ maxTimeout: number; } /** * FixedDelayStrategy */ declare class FixedDelayStrategy implements RetryStrategy { private delay; maxTimeout: number; constructor(delay: number, // Fixed delay time (ms) maxTimeout?: number); /** * Default fixed delay strategy */ static default: FixedDelayStrategy; getDelay(): number; } /** * RandomDelayStrategy */ declare class RandomDelayStrategy implements RetryStrategy { private minDelay; private maxDelay; maxTimeout: number; constructor(minDelay: number, // Minimum delay time (ms) maxDelay: number, // Maximum delay time (ms) maxTimeout?: number); /** * Default random delay strategy */ static default: RandomDelayStrategy; getDelay(): number; } /** * ExponentialBackoffStrategy */ declare class ExponentialBackoffStrategy implements RetryStrategy { private baseDelay; private factor; maxTimeout: number; private randomize; constructor(baseDelay: number, // Base delay time (ms) factor: number, // Exponential factor maxTimeout?: number, randomize?: boolean); /** * Default exponential backoff strategy */ static default: ExponentialBackoffStrategy; getDelay(attempt: number): number; } /** * RetryHandler */ declare class RetryHandler<T> { private strategy; private retries; private onRetry?; constructor(strategy: RetryStrategy, // Retry strategy retries: number, // Maximum retry times onRetry?: ((error: Error, attempt: number) => void) | undefined); /** * Execute the async function and retry according to the strategy * @param fn The async function to execute * @returns The result of the async function */ execute(fn: () => Promise<T>): Promise<T>; } export { type RetryStrategy, FixedDelayStrategy, RandomDelayStrategy, ExponentialBackoffStrategy, RetryHandler }; //# sourceMappingURL=retry_handler.d.ts.map