Lines Matching refs:Args
11 export type TaskDescriptor<Args extends any[]> = {
20 dependsOn?: Task<Args>[] | Task<Args>;
46 export type TaskRunnerDescriptor<Args extends any[], BackupDataType = null> = {
47 tasks: Task<Args>[] | Task<Args>;
52 restoreBackup?: (backup, ...args: Args) => Promiseable<void>;
53 createBackupData?: (task, ...args: Args) => Promiseable<BackupDataType | null>;
55 taskSucceeded?: (task: Task<Args>) => void;
56 taskFailed?: (task: Task<Args>, error: any) => void;
73 export type TaskFunction<Args extends any[]> = (...args: Args) => Promise<void | symbol | Args>;
94 export class TaskRunner<Args extends any[], BackupDataType extends JSONObject | null = null>
95 implements TaskRunnerDescriptor<Args, BackupDataType>
98 readonly tasks: Task<Args>[];
112 ...args: Args
115 readonly createBackupData: (task, ...args: Args) => BackupDataType | null = () => null;
119 readonly taskSucceeded?: (task: Task<Args>) => any;
121 readonly taskFailed?: (task: Task<Args>, error: Error) => any;
123 readonly resolvedTasks: Task<Args>[];
125 constructor(descriptor: TaskRunnerDescriptor<Args, BackupDataType>) {
128 this.tasks = ([] as Task<Args>[]).concat(tasks);
184 async saveBackup(task: Task<Args>, ...args: Args) {
212 async runAsync(...args: Args): Promise<Args> {
227 let nextArgs: Args = args;
248 throw new TaskError<Task<Args>>(task, error);
268 async runAndExitAsync(...args: Args): Promise<void> {
292 export class Task<Args extends any[] = []> implements TaskDescriptor<Args> {
296 readonly dependsOn: Task<Args>[] = [];
300 readonly taskFunction?: TaskFunction<Args>;
302 constructor(descriptor: TaskDescriptor<Args> | string, taskFunction?: TaskFunction<Args>) {
308 this.dependsOn = dependsOn ? ([] as Task<Args>[]).concat(dependsOn) : [];
317 function resolveTasksList<Args extends any[]>(tasks: Task<Args>[]): Task<Args>[] {
318 const list = new Set<Task<Args>>();
320 function iterateThroughDependencies(task: Task<Args>) {