UNPKG

@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.

95 lines (94 loc) 3.34 kB
/** * @module CircuitBreaker */ import { type CircuitBreakerState } from "../../circuit-breaker/contracts/circuit-breaker-state.contract.js"; import { type ICircuitBreakerStateMethods } from "../../circuit-breaker/contracts/circuit-breaker.contract.js"; /** * IMPORT_PATH: `"@daiso-tech/core/circuit-breaker/contracts"` * @group Events */ export type CircuitBreakerEventBase = { circuitBreaker: ICircuitBreakerStateMethods; }; /** * The event is dispatched when a circuit breaker has transitioned state. * * IMPORT_PATH: `"@daiso-tech/core/circuit-breaker/contracts"` * @group Events */ export type StateTransitionCircuitBreakerEvent = CircuitBreakerEventBase & { from: CircuitBreakerState; to: CircuitBreakerState; }; /** * The event is dispatched when a circuit breaker has tracked failure. * * IMPORT_PATH: `"@daiso-tech/core/circuit-breaker/contracts"` * @group Events */ export type TrackedFailureCircuitBreakerEvent = CircuitBreakerEventBase & { error: unknown; }; /** * The event is dispatched when a circuit breaker has untracked failure. * * IMPORT_PATH: `"@daiso-tech/core/circuit-breaker/contracts"` * @group Events */ export type UntrackedFailureCircuitBreakerEvent = CircuitBreakerEventBase & { error: unknown; }; /** * The event is dispatched when a circuit breaker has tracked slow call. * * IMPORT_PATH: `"@daiso-tech/core/circuit-breaker/contracts"` * @group Events */ export type TrackedSlowCallCircuitBreakerEvent = CircuitBreakerEventBase; /** * The event is dispatched when a circuit breaker has tracked successful call. * * IMPORT_PATH: `"@daiso-tech/core/circuit-breaker/contracts"` * @group Events */ export type TrackedSuccessCircuitBreakerEvent = CircuitBreakerEventBase; /** * The event is dispatched when circuit breaker has been reseted. * * IMPORT_PATH: `"@daiso-tech/core/circuit-breaker/contracts"` * @group Events */ export type ResetedCircuitBreakerEvent = CircuitBreakerEventBase; /** * The event is dispatched when circuit breaker has been reseted. * * IMPORT_PATH: `"@daiso-tech/core/circuit-breaker/contracts"` * @group Events */ export type IsolatedCircuitBreakerEvent = CircuitBreakerEventBase; /** * IMPORT_PATH: `"@daiso-tech/core/circuit-breaker/contracts"` * @group Events */ export declare const CIRCUIT_BREAKER_EVENTS: { readonly STATE_TRANSITIONED: "STATE_TRANSITIONED"; readonly RESETED: "RESETED"; readonly UNTRACKED_FAILURE: "IGNORED_ERRROR"; readonly TRACKED_SUCCESS: "TRACKED_SUCCESS"; readonly TRACKED_FAILURE: "TRACKED_FAILURE"; readonly TRACKED_SLOW_CALL: "TRACKED_SLOW_CALL"; readonly ISOLATED: "ISOLATED"; }; /** * IMPORT_PATH: `"@daiso-tech/core/circuit-breaker/contracts"` * @group Events */ export type CircuitBreakerEventMap = { [CIRCUIT_BREAKER_EVENTS.STATE_TRANSITIONED]: StateTransitionCircuitBreakerEvent; [CIRCUIT_BREAKER_EVENTS.TRACKED_FAILURE]: TrackedFailureCircuitBreakerEvent; [CIRCUIT_BREAKER_EVENTS.UNTRACKED_FAILURE]: UntrackedFailureCircuitBreakerEvent; [CIRCUIT_BREAKER_EVENTS.TRACKED_SLOW_CALL]: TrackedSlowCallCircuitBreakerEvent; [CIRCUIT_BREAKER_EVENTS.TRACKED_SUCCESS]: TrackedSuccessCircuitBreakerEvent; [CIRCUIT_BREAKER_EVENTS.RESETED]: ResetedCircuitBreakerEvent; [CIRCUIT_BREAKER_EVENTS.ISOLATED]: IsolatedCircuitBreakerEvent; };