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[]>;
 |