UNPKG

@betit/orion-node-sdk

Version:
63 lines (62 loc) 1.88 kB
import { Error as OrionError, Service } from '../orion'; import { Response } from '../response/response'; import { Request } from '../request/request'; import { HealthCheckResult } from './messages'; import { AsyncArray } from '../utils/asyncArray'; export declare const MILLISECOND = 1; export declare const SECOND: number; export declare const MINUTE: number; export declare const DefaultWatchdogServiceName: () => string; export declare class WatchdogPingRequest extends Request { params: { serviceId: string; name: string; }; constructor(path: string, params: { serviceId: string; name: string; }); } export declare class WatchdogPingResponse extends Response { payload: { status: HealthCheckResult; }; } export interface WatchdogDependency { name: string; timeout: number; } export declare class WatchdogRegisterRequest extends Request { params: { serviceId: string; name: string; env: { [envVar: string]: string; }; dependencies: WatchdogDependency[]; }; constructor(path: string, params: { serviceId: string; name: string; env: { [envVar: string]: string; }; dependencies: WatchdogDependency[]; }); } export declare class WatchdogRegisterResponse extends Response { payload: { status: HealthCheckResult; }; } export interface WatchdogRegisterLoopResult { killTheLoop: () => void; responseArray: AsyncArray<Response>; } export declare function WatchdogRegisterLoop(basePath: string, name: string, serviceId: string, dependencies: WatchdogDependency[], svc: Service): WatchdogRegisterLoopResult; export interface Dependency { checkIsWorking: () => Promise<[string, OrionError | undefined]>; timeout: number; isInternal?: boolean; name: string; }