@schummar/runp
Version:
Neat parallel task execution
20 lines (19 loc) • 864 B
TypeScript
import { Store } from 'cross-state';
import { RunpCommand, type RunpResult } from '.';
import type { WriteLine } from './trackLinearOutput';
export interface Task {
command: RunpCommand;
state: Store<TaskState>;
result: Promise<RunpResult>;
run: (writeLine: WriteLine) => Promise<RunpResult>;
}
export interface TaskState {
status: 'pending' | 'inProgress' | 'done' | 'error' | 'dependencyError';
statusString?: string;
title: string;
rawOutput: string;
output: string;
time?: number;
subTasks: Task[];
}
export declare function task(command: RunpCommand, allTasks: () => Task[], q?: import("schummar-queue").Queue & (<T>(action: (options: import("schummar-queue").ScheduleOptions) => T | PromiseLike<T>, { retries, delay, backoff, priority, }?: Partial<import("schummar-queue").ScheduleOptions>) => Promise<T>)): Task;