UNPKG

server-status-check

Version:

query the server periodically to check whether it is up

72 lines 2.73 kB
import { CheckStatusFunc, InitializedStatus, MaybeUninitializedStatus, WrappedStatus, WrappedStatusE } from "../requestor"; declare type GetRequestor = (uri: string) => Promise<string>; declare type NotifyMessage = { subject: string; text: string; }; declare type NotifyAll = (conf: { sms: NotifyMessage; email: NotifyMessage; }) => Promise<[void, any]>; declare type NotificationMessage = { subject: string; text: string; }; declare type NotificationMessageFor = { up: NotificationMessage; down: NotificationMessage; }; declare type NotificationMessages = { email: NotificationMessageFor; sms: NotificationMessageFor; }; declare type NotificationMessagesConfig = { all: NotificationMessageFor; } & NotificationMessages; declare type StatusName = 'up' | 'down' | 'unknown'; declare type StatusStats = { friendlyFullSentence: string; friendlyStatusPhrase: string; checkIntervalInMinutes: number; dateLastChecked: string; checksSpreeCount: number; aliveForYMDHMS: string; statusName: StatusName; errors: Error[]; }; interface StatusCheckServiceConstructorPropsInterface { checkStatus: CheckStatusFunc; checkInterval: number; getRequestor: GetRequestor; notifyAll: NotifyAll; onFailNotifyHoursInterval: number; serverUri: string; notificationMessages: NotificationMessagesConfig; } export default class StatusCheckService { checkInterval: number; userProvidedCheckStatus: CheckStatusFunc; lastChecked: number | null; lastEmailSentTime: number | null; notifyAll: NotifyAll; notificationMessages: NotificationMessages; onFailNotifyHoursInterval: number; wrappedStatus: WrappedStatusE<MaybeUninitializedStatus>; statusChecksCount: number; serverUri: string; constructor({ notifyAll, serverUri, checkStatus, checkInterval, onFailNotifyHoursInterval, notificationMessages }: StatusCheckServiceConstructorPropsInterface); run(): Promise<void>; statusChanged(status: InitializedStatus): boolean; changedStatusOrDownStatusForMoreThanOneHour(status: InitializedStatus): boolean; shouldNotifyCurrentStatus(status: InitializedStatus): boolean; getStatusFriendlyPhrase(status: MaybeUninitializedStatus): string; notifyServiceStatus({ status }: WrappedStatus<InitializedStatus>): Promise<void>; handleNewStatus(w: WrappedStatus<InitializedStatus>): Promise<void>; checkStatus(): Promise<WrappedStatus<InitializedStatus>>; handleFailedRequest(err: Error): void; getCheckIntervalInMinutes(): number; getStatusStats(): StatusStats; getStatusName(status: MaybeUninitializedStatus): StatusName; } export {}; //# sourceMappingURL=StatusCheckService.d.ts.map