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.

42 lines (41 loc) 1.84 kB
/** * @module CircuitBreaker */ import { type CircuitBreakerEventMap, type CircuitBreakerTrigger, type ICircuitBreakerAdapter } from "../../../../circuit-breaker/contracts/_module.js"; import { CircuitBreaker, type ISerializedCircuitBreaker } from "../../../../circuit-breaker/implementations/derivables/circuit-breaker-provider/circuit-breaker.js"; import { type IEventBus } from "../../../../event-bus/contracts/_module.js"; import { type Namespace } from "../../../../namespace/_module.js"; import { type ISerdeTransformer } from "../../../../serde/contracts/_module.js"; import { type TimeSpan } from "../../../../time-span/implementations/_module.js"; import { type ErrorPolicy, type OneOrMore } from "../../../../utilities/_module.js"; /** * @internal */ export type CircuitBreakerSerdeTransformerSettings = { adapter: ICircuitBreakerAdapter; namespace: Namespace; slowCallTime: TimeSpan; errorPolicy: ErrorPolicy; trigger: CircuitBreakerTrigger; eventBus: IEventBus<CircuitBreakerEventMap>; serdeTransformerName: string; enableAsyncTracking: boolean; }; /** * @internal */ export declare class CircuitBreakerSerdeTransformer implements ISerdeTransformer<CircuitBreaker, ISerializedCircuitBreaker> { private readonly adapter; private readonly namespace; private readonly slowCallTime; private readonly errorPolicy; private readonly trigger; private readonly eventBus; private readonly serdeTransformerName; private readonly enableAsyncTracking; constructor(settings: CircuitBreakerSerdeTransformerSettings); get name(): OneOrMore<string>; isApplicable(value: unknown): value is CircuitBreaker; deserialize(serializedValue: ISerializedCircuitBreaker): CircuitBreaker; serialize(deserializedValue: CircuitBreaker): ISerializedCircuitBreaker; }