You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					245 lines
				
				12 KiB
			
		
		
			
		
	
	
					245 lines
				
				12 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								// Type definitions for lie 3.2
							 | 
						||
| 
								 | 
							
								// Project: https://github.com/calvinmetcalf/lie#readme
							 | 
						||
| 
								 | 
							
								// Definitions by: Andre Wiggins <https://github.com/andrewiggins>
							 | 
						||
| 
								 | 
							
								// TypeScript Version: 2.3
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// These types are copied from TypeScript's built-in Promise types
							 | 
						||
| 
								 | 
							
								// and extended with extra Lie utilities namely, finally.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export as namespace Promise;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Represents the completion of an asynchronous operation
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								interface Promise<T> {
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Attaches callbacks for the resolution and/or rejection of the Promise.
							 | 
						||
| 
								 | 
							
								     * @param onfulfilled The callback to execute when the Promise is resolved.
							 | 
						||
| 
								 | 
							
								     * @param onrejected The callback to execute when the Promise is rejected.
							 | 
						||
| 
								 | 
							
								     * @returns A Promise for the completion of which ever callback is executed.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    then<TResult1 = T, TResult2 = never>(onfulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Attaches a callback for only the rejection of the Promise.
							 | 
						||
| 
								 | 
							
								     * @param onrejected The callback to execute when the Promise is rejected.
							 | 
						||
| 
								 | 
							
								     * @returns A Promise for the completion of the callback.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * When the promise is settled, whether fulfilled or rejected, execute the
							 | 
						||
| 
								 | 
							
								     * specified callback function. This provides a way for code that must be
							 | 
						||
| 
								 | 
							
								     * executed once the Promise has been dealt with to be run whether the promise
							 | 
						||
| 
								 | 
							
								     * was fulfilled successfully or rejected.
							 | 
						||
| 
								 | 
							
								     * @param onfinally Function called when the Promise is settled
							 | 
						||
| 
								 | 
							
								     * @returns A Promise whose finally handler is set to the specified function, onfinally.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    finally<TResult = never>(onfinally?: (() => TResult | PromiseLike<TResult>) | undefined | null): Promise<T | TResult>;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								interface PromiseConstructor {
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * A reference to the prototype.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    readonly prototype: Promise<any>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a new Promise.
							 | 
						||
| 
								 | 
							
								     * @param executor A callback used to initialize the promise. This callback is passed two arguments:
							 | 
						||
| 
								 | 
							
								     * a resolve callback used resolve the promise with a value or the result of another promise,
							 | 
						||
| 
								 | 
							
								     * and a reject callback used to reject the promise with a provided reason or error.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    new <T>(executor: (resolve: (value?: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved with an array of results when all of the provided Promises
							 | 
						||
| 
								 | 
							
								     * resolve, or rejected when any Promise is rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved with an array of results when all of the provided Promises
							 | 
						||
| 
								 | 
							
								     * resolve, or rejected when any Promise is rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved with an array of results when all of the provided Promises
							 | 
						||
| 
								 | 
							
								     * resolve, or rejected when any Promise is rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved with an array of results when all of the provided Promises
							 | 
						||
| 
								 | 
							
								     * resolve, or rejected when any Promise is rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved with an array of results when all of the provided Promises
							 | 
						||
| 
								 | 
							
								     * resolve, or rejected when any Promise is rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    all<T1, T2, T3, T4, T5, T6>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved with an array of results when all of the provided Promises
							 | 
						||
| 
								 | 
							
								     * resolve, or rejected when any Promise is rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    all<T1, T2, T3, T4, T5>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>]): Promise<[T1, T2, T3, T4, T5]>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved with an array of results when all of the provided Promises
							 | 
						||
| 
								 | 
							
								     * resolve, or rejected when any Promise is rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    all<T1, T2, T3, T4>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>]): Promise<[T1, T2, T3, T4]>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved with an array of results when all of the provided Promises
							 | 
						||
| 
								 | 
							
								     * resolve, or rejected when any Promise is rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    all<T1, T2, T3>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<[T1, T2, T3]>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved with an array of results when all of the provided Promises
							 | 
						||
| 
								 | 
							
								     * resolve, or rejected when any Promise is rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    all<T1, T2>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<[T1, T2]>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved with an array of results when all of the provided Promises
							 | 
						||
| 
								 | 
							
								     * resolve, or rejected when any Promise is rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    all<T>(values: (T | PromiseLike<T>)[]): Promise<T[]>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
							 | 
						||
| 
								 | 
							
								     * or rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    race<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Promise<T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 | T10>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
							 | 
						||
| 
								 | 
							
								     * or rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    race<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
							 | 
						||
| 
								 | 
							
								     * or rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    race<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
							 | 
						||
| 
								 | 
							
								     * or rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    race<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<T1 | T2 | T3 | T4 | T5 | T6 | T7>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
							 | 
						||
| 
								 | 
							
								     * or rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    race<T1, T2, T3, T4, T5, T6>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<T1 | T2 | T3 | T4 | T5 | T6>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
							 | 
						||
| 
								 | 
							
								     * or rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    race<T1, T2, T3, T4, T5>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>]): Promise<T1 | T2 | T3 | T4 | T5>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
							 | 
						||
| 
								 | 
							
								     * or rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    race<T1, T2, T3, T4>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>]): Promise<T1 | T2 | T3 | T4>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
							 | 
						||
| 
								 | 
							
								     * or rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    race<T1, T2, T3>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<T1 | T2 | T3>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
							 | 
						||
| 
								 | 
							
								     * or rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    race<T1, T2>(values: [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<T1 | T2>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved
							 | 
						||
| 
								 | 
							
								     * or rejected.
							 | 
						||
| 
								 | 
							
								     * @param values An array of Promises.
							 | 
						||
| 
								 | 
							
								     * @returns A new Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    race<T>(values: (T | PromiseLike<T>)[]): Promise<T>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a new rejected promise for the provided reason.
							 | 
						||
| 
								 | 
							
								     * @param reason The reason the promise was rejected.
							 | 
						||
| 
								 | 
							
								     * @returns A new rejected Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    reject(reason: any): Promise<never>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a new rejected promise for the provided reason.
							 | 
						||
| 
								 | 
							
								     * @param reason The reason the promise was rejected.
							 | 
						||
| 
								 | 
							
								     * @returns A new rejected Promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    reject<T>(reason: any): Promise<T>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a new resolved promise for the provided value.
							 | 
						||
| 
								 | 
							
								     * @param value A promise.
							 | 
						||
| 
								 | 
							
								     * @returns A promise whose internal state matches the provided promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    resolve<T>(value: T | PromiseLike<T>): Promise<T>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * Creates a new resolved promise .
							 | 
						||
| 
								 | 
							
								     * @returns A resolved promise.
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    resolve(): Promise<void>;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								declare const Promise: PromiseConstructor;
							 | 
						||
| 
								 | 
							
								export default Promise;
							 |