@daiso-tech/core
Version:
The library offers flexible, framework-agnostic solutions for modern web applications, built on adaptable components that integrate seamlessly with popular frameworks like Next Js.
50 lines • 1.76 kB
JavaScript
/**
* @module CircuitBreaker
*/
import { resolveConsecutiveBreakerSettings } from "../../../circuit-breaker/implementations/policies/consecutive-breaker/_module.js";
import { resolveCountBreakerSettings } from "../../../circuit-breaker/implementations/policies/count-breaker/_module.js";
import { resolveSamplingBreakerSettings, serializeSamplingBreakerSettings, } from "../../../circuit-breaker/implementations/policies/sampling-breaker/_module.js";
import { BREAKER_POLICIES, } from "../../../circuit-breaker/implementations/policies/types.js";
/**
* @internal
*/
export function resolveCircuitBreakerPolicySettings(settings) {
if (settings.type === BREAKER_POLICIES.CONSECUTIVE) {
return {
type: BREAKER_POLICIES.CONSECUTIVE,
...resolveConsecutiveBreakerSettings(settings),
};
}
if (settings.type === BREAKER_POLICIES.SAMPLING) {
return {
type: BREAKER_POLICIES.SAMPLING,
...resolveSamplingBreakerSettings(settings),
};
}
return {
type: BREAKER_POLICIES.COUNT,
...resolveCountBreakerSettings(settings),
};
}
/**
* @internal
*/
export function serializeCircuitBreakerPolicySettingsEnum(settings) {
if (settings.type === BREAKER_POLICIES.CONSECUTIVE) {
return {
type: BREAKER_POLICIES.CONSECUTIVE,
...resolveConsecutiveBreakerSettings(settings),
};
}
if (settings.type === BREAKER_POLICIES.SAMPLING) {
return {
type: BREAKER_POLICIES.SAMPLING,
...serializeSamplingBreakerSettings(settings),
};
}
return {
type: BREAKER_POLICIES.COUNT,
...resolveCountBreakerSettings(settings),
};
}
//# sourceMappingURL=_shared.js.map