UNPKG

@visulima/health-check

Version:

A library built to provide support for defining service health for node services. It allows you to register async health checks for your dependencies and the service itself, provides a health endpoint that exposes their status, and health metrics.

61 lines (51 loc) 2.12 kB
import { Options } from 'cacheable-lookup'; import { extendedPingOptions } from 'pingman'; import { IncomingMessage, ServerResponse } from 'node:http'; interface HealthReportEntry { displayName: string; health: { healthy: boolean; message?: string; timestamp: string; }; meta?: any; } type Checker = () => Promise<HealthReportEntry>; type HealthReport = Record<string, HealthReportEntry>; interface HealthCheck { addChecker: (service: string, checker: Checker) => void; getReport: () => Promise<{ healthy: boolean; report: HealthReport; }>; isLive: () => Promise<boolean>; servicesList: string[]; } interface DnsOptions extends Options { family?: "all" | 4 | 6; hints?: number; } declare const dnsCheck: (host: string, expectedAddresses?: string[], options?: DnsOptions) => Checker; declare const httpCheck: (host: RequestInfo | URL, options?: { expected?: { body?: string; status?: number; }; fetchOptions?: RequestInit; }) => Checker; declare const nodeEnvironmentCheck: (expectedEnvironment?: string) => Checker; declare const pingCheck: (host: string, options?: extendedPingOptions) => Checker; declare const _default$1: (healthCheck: HealthCheck, sendHeader?: boolean | undefined) => <Request extends IncomingMessage, Response extends ServerResponse>(_: Request, response: Response) => Promise<void>; declare const _default: <Request extends IncomingMessage, Response extends ServerResponse>(healthCheck: HealthCheck) => (_request: Request, response: Response) => Promise<void>; declare class Healthcheck implements HealthCheck { private healthCheckers; addChecker(service: string, checker: Checker): void; getReport(): Promise<{ healthy: boolean; report: HealthReport; }>; isLive(): Promise<boolean>; get servicesList(): string[]; private invokeChecker; } export { type Checker, Healthcheck as HealthCheck, dnsCheck, _default$1 as healthCheckHandler, _default as healthReadyHandler, httpCheck, nodeEnvironmentCheck as nodeEnvCheck, pingCheck };