42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
export interface Result<T> {
 | 
						|
    amountDone: number;
 | 
						|
    amountStarted: number;
 | 
						|
    amountResolved: number;
 | 
						|
    amountRejected: number;
 | 
						|
    amountNextCheckFalsey: number;
 | 
						|
    rejectedIndexes: number[];
 | 
						|
    resolvedIndexes: number[];
 | 
						|
    nextCheckFalseyIndexes: number[];
 | 
						|
    taskResults: T[];
 | 
						|
}
 | 
						|
export interface Options {
 | 
						|
    maxInProgress?: number;
 | 
						|
    failFast?: boolean;
 | 
						|
    progressCallback?: <T>(result: Result<T>) => void;
 | 
						|
    nextCheck?: nextTaskCheck;
 | 
						|
}
 | 
						|
export declare type Task<T> = () => Promise<T>;
 | 
						|
export declare type Tasks<T> = Array<Task<T>>;
 | 
						|
export declare type nextTaskCheck = <T>(status: Result<T>, tasks: Tasks<T>) => Promise<boolean>;
 | 
						|
/**
 | 
						|
 * Raw throttle function, which can return extra meta data.
 | 
						|
 * @param tasks required array of tasks to be executed
 | 
						|
 * @param options Options object
 | 
						|
 * @returns {Promise}
 | 
						|
 */
 | 
						|
export declare function raw<T>(tasks: Tasks<T>, options?: Options): Promise<Result<T>>;
 | 
						|
/**
 | 
						|
 * Simply run all the promises after each other, so in synchronous manner
 | 
						|
 * @param tasks required array of tasks to be executed
 | 
						|
 * @param options Options object
 | 
						|
 * @returns {Promise}
 | 
						|
 */
 | 
						|
export declare function sync<T>(tasks: Tasks<T>, options?: Options): Promise<T[]>;
 | 
						|
/**
 | 
						|
 * Exposes the same behaviour as Promise.All(), but throttled!
 | 
						|
 * @param tasks required array of tasks to be executed
 | 
						|
 * @param options Options object
 | 
						|
 * @returns {Promise}
 | 
						|
 */
 | 
						|
export declare function all<T>(tasks: Tasks<T>, options?: Options): Promise<T[]>;
 |