node-circuit-breaker
Version:
Circuit Breaker: Decorators and tools that can easily apply the Circuit Breaker pattern.
20 lines (19 loc) • 795 B
TypeScript
import { Circuit } from '../circuit-breaker-manager';
import { CircuitBreakerScope } from '../types/circuit.type';
export interface CircuitBreakerRule {
exceptions: Array<typeof Error | any>;
times: number;
inSeconds: number;
}
export interface CircuitBreakerOptions {
scope?: CircuitBreakerScope;
fallback: Function | string | Object;
ignore?: (error: any, circuit: Circuit) => Promise<boolean>;
onError?: (error: any, circuit: Circuit) => Promise<void>;
onCircuitOpen?: (circuit: Circuit) => Promise<boolean>;
onCircuitClose?: (circuit: Circuit) => Promise<boolean>;
timeoutMilliSeconds?: number;
rules: CircuitBreakerRule[];
fallbackForSeconds: number;
}
export declare function CircuitBreaker(options: CircuitBreakerOptions): MethodDecorator;