core-queue
Version:
Simple, zero dependency promise-based queue.
36 lines (35 loc) • 838 B
TypeScript
export interface Task {
func: any;
resolve: any;
reject: any;
}
export declare enum State {
running = 0,
stopped = 1
}
export interface CoreQueueOptions {
maxTasks: number;
maxConcurrency: number;
autostart: boolean;
}
export declare class CoreQueue {
private queue;
private tasksInProgress;
private options;
private queueState;
private internalWatcher;
private internalWatcherResolve;
constructor(options?: CoreQueueOptions);
get size(): number;
get pendingSize(): number;
get inProgressSize(): number;
get isEmpty(): boolean;
get isFull(): boolean;
get peek(): Task;
start(): void;
stop(): void;
clear(): void;
done(): Promise<void>;
enqueue(func: () => any): Promise<any>;
private dequeue;
}