@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.
34 lines (32 loc) • 1.07 kB
JavaScript
/**
* @module CircuitBreaker
*/
/**
* @internal
*/
export const circuitBreakerLua = `
-- @template TMetrics
-- @param circuitBreakerStorage CircuitBreakerStorage<TMetrics>
-- @param circuitBreakerStateManager CircuitBreakerStateManager<TMetrics>
-- @return ICircuitBreakerAdapter
local function CircuitBreaker(circuitBreakerStorage, circuitBreakerStateManager)
return {
-- @param key string
-- @return CircuitBreakerStateTransition
updateState = function(key)
return circuitBreakerStorage.atomicUpdate(key, circuitBreakerStateManager.updateState)
end,
-- @param key string
-- @return void
trackFailure = function(key)
return circuitBreakerStorage.atomicUpdate(key, circuitBreakerStateManager.trackFailure)
end,
-- @param key string
-- @return void
trackSuccess = function(key)
return circuitBreakerStorage.atomicUpdate(key, circuitBreakerStateManager.trackSuccess)
end
}
end
`;
//# sourceMappingURL=circuit-breaker-lua.js.map