@sap-cloud-sdk/resilience
Version:
SAP Cloud SDK for JavaScript resilience
47 lines (46 loc) • 1.4 kB
TypeScript
import type { MiddlewareContext, Middleware } from './middleware';
/**
* Map of all existing circuit breakers.
* Entries are added in a lazy way.
* TODO:
* The value type here should be CircuitBreaker, but this would make the Opossum types part of our public API.
* This happens although it is marked as internal, because transpilation includes internal.
* Adding CircuitBreaker will break transpilation on generation.
* @internal
*/
export declare const circuitBreakers: Record<string, any>;
/**
* @internal
*/
export declare const circuitBreakerDefaultOptions: CircuitBreakerOptions;
/**
* Helper method to build a circuit breaker middleware.
* @returns The middleware adding a circuit breaker to the function.
*/
export declare function circuitBreaker<ArgumentT, ReturnT, ContextT extends MiddlewareContext<ArgumentT>>(): Middleware<ArgumentT, ReturnT, ContextT>;
/**
* This is partially copied from CircuitBreaker.Options of `@types/opossum`.
* @internal
*/
export interface CircuitBreakerOptions {
/**
* @internal
*/
timeout?: number | false | undefined;
/**
* @internal
*/
errorThresholdPercentage?: number | undefined;
/**
* @internal
*/
volumeThreshold?: number | undefined;
/**
* @internal
*/
resetTimeout?: number | undefined;
/**
* @internal
*/
cache?: boolean | undefined;
}