@betit/orion-node-sdk
Version:
SDK for orion
63 lines (62 loc) • 1.88 kB
TypeScript
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;
}