@meframe/core
Version:
Next generation media processing framework based on WebCodecs
36 lines (35 loc) • 1.08 kB
TypeScript
import { WorkerMessageType } from './types';
export interface RetryConfig {
maxRetries: number;
initialDelay?: number;
maxDelay?: number;
backoffFactor?: number;
retryableErrors?: string[];
}
export interface RetryContext {
attempt: number;
maxRetries: number;
lastError?: Error;
messageType: WorkerMessageType;
}
/**
* Default retry configuration
*/
export declare const defaultRetryConfig: Required<RetryConfig>;
/**
* Calculate delay for next retry attempt
*/
export declare function calculateRetryDelay(attempt: number, config: RetryConfig): number;
/**
* Check if error is retryable
*/
export declare function isRetryableError(error: Error | any, config: RetryConfig): boolean;
/**
* Execute function with retry logic
*/
export declare function withRetry<T>(fn: () => Promise<T>, config: RetryConfig): Promise<T>;
/**
* Create a retry wrapper for a specific operation
*/
export declare function createRetryWrapper<T extends (...args: any[]) => Promise<any>>(fn: T, config: RetryConfig): T;
//# sourceMappingURL=worker-retry.d.ts.map