UNPKG

asva-executors

Version:

Helper classes for your async flow control

39 lines (38 loc) 1.21 kB
export declare type ExecutorCommand = (...args: any[]) => Promise<any>; export default class Executor { protected readonly command: ExecutorCommand; /** * Currently running commands */ runCount: number; /** * Last executor run happened without an error */ wasLastRunFine: boolean; /** * Executor was run at least once */ wasRun: boolean; /** * Executor was run without throwing error at least once */ wasRunFine: boolean; /** * Executor was run with thrown error at least once */ wasRunBad: boolean; constructor(command: ExecutorCommand); static createAndRun(command: ExecutorCommand): Executor; /** * Command from this executor is currently running. */ get isRunning(): boolean; /** * @param parameters Arguments, will be passed down to command. * @returns {Promise<any>} Promise result is formed from whatever you returned from command. */ run(...parameters: any[]): Promise<any>; protected beforeRun(): void; protected afterRun(promise: Promise<any>): void; protected setRunResultFlags(success: boolean): void; }