power-tasks
Version:
Powerful task management for JavaScript
30 lines (29 loc) • 954 B
TypeScript
import DoublyLinked from "doublylinked";
import { AsyncEventEmitter } from "strict-typed-events";
import { Task, TaskLike } from "./task.js";
export interface TaskQueueOptions {
maxQueue?: number;
concurrency?: number;
paused?: boolean;
}
export declare class TaskQueue extends AsyncEventEmitter {
maxQueue?: number;
concurrency?: number;
protected _paused: boolean;
protected _queue: DoublyLinked<Task<any>>;
protected _running: Set<Task<any>>;
constructor(options?: TaskQueueOptions);
get size(): number;
get running(): number;
get queued(): number;
get paused(): boolean;
pause(): void;
resume(): void;
clearQueue(): void;
abortAll(): void;
wait(): Promise<void>;
enqueuePrepend<T = any>(task: TaskLike<T>): Task<T>;
enqueue<T = any>(task: TaskLike<T>): Task<T>;
protected _enqueue<T = any>(task: TaskLike, prepend: boolean): Task<T>;
protected _pulse(): void;
}