UNPKG

@kcutils/models

Version:

Additional DataType and Models

52 lines 1.49 kB
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