async-scheduler
Version:
 
23 lines (22 loc) • 834 B
TypeScript
import Scheduler from "./Scheduler";
import { SchedulableTask, TaskCollisionStrategy } from "./SchedulableTask";
declare type StringMap = {
[key: string]: string;
};
export default class Builder<T, M> {
private readonly _task;
private readonly _scheduler;
private _mutex;
private _descriptor;
private _meta;
private _onPreExecute;
private _onTaskCollision;
constructor(task: () => Promise<T>, scheduler: Scheduler);
withDescriptor(descriptor: number): Builder<T, M>;
withMutex(mutex: number): Builder<T, M>;
withMeta<Meta = StringMap>(meta: Meta): Builder<T, Meta>;
runBeforeExecuting(what: () => void): Builder<T, M>;
handleCollisions(handler: (other: SchedulableTask<any, any>) => TaskCollisionStrategy): Builder<T, M>;
execute(priority: number): Promise<T>;
}
export {};