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.

19 lines (18 loc) 1.25 kB
/** * @module CircuitBreaker */ import { type ICircuitBreakerStorageAdapter, type CircuitBreakerStateTransition } from "../../../../circuit-breaker/contracts/_module.js"; import { type AllCircuitBreakerState, type InternalCircuitBreakerPolicy } from "../../../../circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/internal-circuit-breaker-policy.js"; import { type DatabaseCircuitBreakerUpdateStateFn } from "../../../../circuit-breaker/implementations/adapters/database-circuit-breaker-adapter/types.js"; import { type IReadableContext } from "../../../../execution-context/contracts/_module.js"; /** * @internal */ export declare class CircuitBreakerStorage<TMetrics = unknown> { private readonly adapter; private readonly circuitBreakerPolicy; constructor(adapter: ICircuitBreakerStorageAdapter<AllCircuitBreakerState<TMetrics>>, circuitBreakerPolicy: InternalCircuitBreakerPolicy<TMetrics>); atomicUpdate(context: IReadableContext, key: string, update: DatabaseCircuitBreakerUpdateStateFn<TMetrics>): Promise<CircuitBreakerStateTransition>; find(context: IReadableContext, key: string): Promise<AllCircuitBreakerState<TMetrics>>; remove(context: IReadableContext, key: string): Promise<void>; }