UNPKG

@qrvey/health-checker

Version:

![install size](https://packagephobia.com/badge?p=@qrvey/health-checker) ![coverage](https://img.shields.io/badge/unit_test_coverage-87%25-brightgreen)

71 lines (54 loc) 2.25 kB
type Dependency = 'database' | 'cache' | 'eventBroker'; type HealthStatus = 'OK' | 'FAILED'; interface EventBrokerHealthCheckerResult { status: HealthStatus; metadata: { consumersSet?: Set<string>; }; } interface IHealthChecker<T = void> { dependency: Dependency; check(params?: DependencyHealthCheckerParams): Promise<T>; } interface IEventBrokerParams { queues?: string[]; hostName?: string; consumersSet?: Set<string>; omitPing?: boolean; returnConsumersSet?: boolean; } type CheckerRegistry = { cache: IHealthChecker<void>; database: IHealthChecker<void>; eventBroker: IHealthChecker<EventBrokerHealthCheckerResult>; }; type DependencyHealthDetail = { status: HealthStatus; durationMs?: number; metadata?: Record<string, unknown>; }; type HealthCheckResult = { status: HealthStatus; details: Partial<Record<Dependency, DependencyHealthDetail>>; }; type HealthCheckerParams = { eventBroker?: IEventBrokerParams; hostName?: string; skip?: string[]; force?: boolean; }; type DependencyHealthCheckerParams = { hostName?: string; } & Partial<Record<Dependency, unknown>>; declare class HealthCheckService { static check(dependencies: Dependency[], params?: HealthCheckerParams): Promise<HealthCheckResult>; } declare const PostgreSQLHealthChecker: IHealthChecker; declare const RedisHealthChecker: IHealthChecker; declare const RabbitMQHealthChecker: IHealthChecker<EventBrokerHealthCheckerResult>; declare function registerHealthCheck(dependency: Dependency | Dependency[]): void; declare function clearRegistry(): void; declare const OK: HealthStatus; declare const FAILED: HealthStatus; declare const DEFAULT_HEALTH_STATUS: "OK"; export { RedisHealthChecker as CacheHealthChecker, type CheckerRegistry, DEFAULT_HEALTH_STATUS, PostgreSQLHealthChecker as DatabaseHealthChecker, type Dependency, type DependencyHealthCheckerParams, type DependencyHealthDetail, RabbitMQHealthChecker as EventBrokerHealthChecker, type EventBrokerHealthCheckerResult, FAILED, type HealthCheckResult, HealthCheckService, type HealthCheckerParams, type HealthStatus, type IEventBrokerParams, type IHealthChecker, OK, clearRegistry, registerHealthCheck };