@kcutils/models
Version:
Additional DataType and Models
52 lines • 1.49 kB
TypeScript
export declare type SchedulerEventMapping = {
error: Error;
"before-run": void;
"after-run": void;
stopped: void;
starting: void;
};
export declare type SchedulerEventName = keyof SchedulerEventMapping;
declare type Callback<T> = () => T;
declare type ParamCallback<P, T> = (p: P) => T;
export declare class Scheduler {
private interval;
private delay;
private onDelay?;
private onSchedule?;
private cb?;
private readonly event;
/**
* @param interval time in millisecond
* @param delay time in millisecond
*/
constructor(interval: number, delay?: number);
on<K extends SchedulerEventName, T extends SchedulerEventMapping[K]>(type: K, cb: ParamCallback<T, void>): void;
schedule(cb: Callback<void | Promise<void>>): void;
updateTime(interval?: number, delay?: number): void;
/**
* stop scheduler if it running and start new process
*/
restart(): void;
/**
* return true if start the sehedule include when waiting for delay time
*/
isStarting(): boolean;
/**
* return true if and only if scheduler start, when delay time will return false
*/
isRunning(): boolean;
/**
* return true if `schedule()` has been called
*/
isStartable(): boolean;
/**
* stop schedule process and delay process
*/
stop(): void;
/**
* remove all saved data
*/
clear(): void;
}
export {};
//# sourceMappingURL=Scheduler.d.ts.map