@ima/core
Version:
IMA.js framework for isomorphic javascript application
34 lines • 1.51 kB
TypeScript
export type ExecutionJob = (...args: unknown[]) => Promise<unknown> | unknown;
/**
* Execution is an abstract class that defines a standard for executing jobs.
* The execution can be either done in serial or in parallel way.
*
* When executing jobs in parallel an option should define how to deal with
* a result of each individual job execution. One option would be to return the
* result of a job that completes first. Second option is to return result of
* all jobs once they're all complete.
*
* For serial execution you should define an option that affects how arguments
* passed to the `execute` method are distributed. They could be either
* supplied to each job individually (thus meaning one job's mutation won't
* affect another job) or they could be supplied to the first job and then
* piped through other jobs.
*/
export declare abstract class Execution {
/**
* Adds a new job to be executed. The job is appended at the end of the
* list of current jobs therefore is executed last.
*
* @param jobs The jobs to be executed.
*/
append(jobs: ExecutionJob[]): void;
/**
* Start executing collected jobs. In the end a `Promise` is returned
* with a resulting value. On the returned `Promise` a `catch`
* method can be called to prevent any unwanted interruption.
*
* @param args Arguments to be passed when executing jobs
*/
execute(...args: unknown[]): Promise<unknown>;
}
//# sourceMappingURL=Execution.d.ts.map