UNPKG

@labset/task-pool-executor

Version:
16 lines (15 loc) 519 B
import { SingleBar } from 'cli-progress'; export type Runnable<TOutput, TRunContext> = { title: string; run: (ctx?: TRunContext) => Promise<TOutput>; }; export interface TaskPoolExecutor<TOutput, TRunContext> { readonly queue: Runnable<TOutput, TRunContext>[]; readonly current: Map<string, Promise<any>>; readonly maxConcurrent: number; submit(runnable: Runnable<TOutput, TRunContext>): void; close(): Promise<TOutput[]>; } export type CliProgressRunContext = { progress: SingleBar; };