UNPKG

power-tasks

Version:

Powerful task management for JavaScript

30 lines (29 loc) 954 B
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; }