veloze
Version:
A modern and fast express-like webserver for the web
66 lines (65 loc) • 1.67 kB
TypeScript
export function nap(ms?: number): Promise<any>;
export function abortablePromise<T>(promise: Promise<T>, ms?: number): Promise<T>;
/**
* @typedef {Object} Check
* @property {() => Promise<boolean>} asyncFn
* @property {boolean} result
* @property {Date} checkAt
*/
/**
* Run readiness checks at regular intervals
*/
export class Readiness {
/**
* @param {{
* name?: string,
* intervalMs?: number,
* abortTimeoutMs?: number,
* }} options
*/
constructor(options: {
name?: string;
intervalMs?: number;
abortTimeoutMs?: number;
});
/** @type {Map<string, Check>} */
_map: Map<string, Check>;
/** @type {boolean} */
_isRunning: boolean;
_options: {
name: string;
intervalMs: number;
abortTimeoutMs: number;
};
/**
* register a readiness check
* @param {string} name
* @param {() => Promise<boolean> } asyncFn
* @param {boolean} [initialResult=false]
*/
register(name: string, asyncFn: () => Promise<boolean>, initialResult?: boolean): void;
/**
* @returns {{statusCode: number, results: {}|Record<string, {result: boolean, checkAt: Date}>}}
*/
getResults(): {
statusCode: number;
results: {} | Record<string, {
result: boolean;
checkAt: Date;
}>;
};
start(): Promise<void>;
stop(): void;
/**
* @private
* @param {string} name
* @param {Check} check
*/
private _runCheck;
_runAllChecks(): Promise<void>;
}
export type Check = {
asyncFn: () => Promise<boolean>;
result: boolean;
checkAt: Date;
};