UNPKG

@schummar/runp

Version:

Neat parallel task execution

20 lines (19 loc) 864 B
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;