@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.
8 lines (7 loc) • 1.06 kB
TypeScript
/**
* @module CircuitBreaker
*/
/**
* @internal
*/
export declare const circuitBreakerLua = "\n-- @template TMetrics\n-- @param circuitBreakerStorage CircuitBreakerStorage<TMetrics>\n-- @param circuitBreakerStateManager CircuitBreakerStateManager<TMetrics>\n-- @return ICircuitBreakerAdapter\nlocal function CircuitBreaker(circuitBreakerStorage, circuitBreakerStateManager)\n return {\n -- @param key string\n -- @return CircuitBreakerStateTransition\n updateState = function(key)\n return circuitBreakerStorage.atomicUpdate(key, circuitBreakerStateManager.updateState)\n end,\n\n -- @param key string\n -- @return void\n trackFailure = function(key)\n return circuitBreakerStorage.atomicUpdate(key, circuitBreakerStateManager.trackFailure)\n end,\n\n -- @param key string\n -- @return void\n trackSuccess = function(key)\n return circuitBreakerStorage.atomicUpdate(key, circuitBreakerStateManager.trackSuccess)\n end\n }\nend\n";