UNPKG

@sap-cloud-sdk/resilience

Version:

SAP Cloud SDK for JavaScript resilience

39 lines 1.44 kB
"use strict"; 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