@labset/task-pool-executor
Version:
task pool executor
16 lines (15 loc) • 519 B
TypeScript
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;
};