@heroku-cli/command
Version:
base class for Heroku CLI commands
12 lines (11 loc) • 443 B
TypeScript
export type PromiseResolve<T> = (value: PromiseLike<T> | T) => void;
export type PromiseReject = (reason?: any) => void;
export type Task<T> = () => Promise<T>;
export type Record<T> = [Task<T>, PromiseResolve<T>, PromiseReject];
export declare class Mutex<T> {
private busy;
private readonly queue;
dequeue(): Promise<void> | undefined;
execute(record: Record<T>): Promise<void>;
synchronize(task: Task<T>): Promise<T>;
}