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