@sap-cloud-sdk/resilience
Version:
SAP Cloud SDK for JavaScript resilience
39 lines • 1.44 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.resilience = resilience;
const timeout_1 = require("./timeout");
const retry_1 = require("./retry");
const circuit_breaker_1 = require("./circuit-breaker");
const defaultResilienceOptions = {
retry: false,
timeout: true,
circuitBreaker: true
};
/**
* Return the resilience middleware functions as an array.
* By default, timeout and circuit breaker are enabled and retry is disabled.
* This behavior can be overridden by adjusting the resilience options {@link ResilienceOptions}.
* @param options - Resilience Options.
* @returns Array of middleware functions.
*/
function resilience(options) {
const resilienceOption = { ...defaultResilienceOptions, ...options };
const middlewares = [];
if (typeof resilienceOption.retry === 'number') {
middlewares.push((0, retry_1.retry)(resilienceOption.retry));
}
else if (resilienceOption.retry) {
middlewares.push((0, retry_1.retry)());
}
if (resilienceOption.circuitBreaker) {
middlewares.push((0, circuit_breaker_1.circuitBreaker)());
}
if (typeof resilienceOption.timeout === 'number') {
middlewares.push((0, timeout_1.timeout)(resilienceOption.timeout));
}
else if (resilienceOption.timeout) {
middlewares.push((0, timeout_1.timeout)());
}
return middlewares;
}
//# sourceMappingURL=resilience.js.map