axios-retryer
Version:
axios-retryer is an advanced Axios request manager offering intelligent retry logic with token refresh, concurrency control, priority queuing, and a flexible plugin architecture, all built with TypeScript for robust HTTP client integrations.
28 lines (27 loc) • 1.25 kB
TypeScript
export { CircuitBreakerPlugin } from './CircuitBreakerPlugin';
export { type CircuitBreakerOptions } from './CircuitBreakerPlugin';
import { CircuitBreakerPlugin, type CircuitBreakerOptions } from './CircuitBreakerPlugin';
/**
* Creates a CircuitBreakerPlugin instance.
* Functional alternative to using the `new CircuitBreakerPlugin()` constructor.
*
* The circuit breaker pattern prevents repeated requests to a failing service by
* temporarily blocking requests after a threshold of failures is reached.
*
* @param options Configuration options for the CircuitBreakerPlugin
* @returns A configured CircuitBreakerPlugin instance
*
* @example
* ```typescript
* const circuitBreaker = createCircuitBreaker({
* failureThreshold: 5, // Trip circuit after 5 consecutive failures
* openTimeout: 30000, // Remain open for 30s before allowing half-open test
* halfOpenMax: 1, // Allow 1 test request in half-open state
* useSlidingWindow: true, // Use sliding window for failure analysis
* slidingWindowSize: 60000 // 60-second sliding window
* });
*
* manager.use(circuitBreaker);
* ```
*/
export declare function createCircuitBreaker(options?: Partial<CircuitBreakerOptions>): CircuitBreakerPlugin;