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.
		
		
		
		
		
			
		
			
				
					33 lines
				
				846 B
			
		
		
			
		
	
	
					33 lines
				
				846 B
			| 
								 
											3 years ago
										 
									 | 
							
								// @flow
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								opaque type Next = Function | void;
							 | 
						||
| 
								 | 
							
								opaque type Yield = mixed;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export type Gensync<Args, Return> = {
							 | 
						||
| 
								 | 
							
								  (...args: Args): Handler<Return>,
							 | 
						||
| 
								 | 
							
								  sync(...args: Args): Return,
							 | 
						||
| 
								 | 
							
								  async(...args: Args): Promise<Return>,
							 | 
						||
| 
								 | 
							
								  // ...args: [...Args, Callback]
							 | 
						||
| 
								 | 
							
								  errback(...args: any[]): void,
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export type Handler<Return> = Generator<Yield, Return, Next>;
							 | 
						||
| 
								 | 
							
								export type Options<Args, Return> = {
							 | 
						||
| 
								 | 
							
								  sync(...args: Args): Return,
							 | 
						||
| 
								 | 
							
								  arity?: number,
							 | 
						||
| 
								 | 
							
								  name?: string,
							 | 
						||
| 
								 | 
							
								} & (
							 | 
						||
| 
								 | 
							
								  | { async?: (...args: Args) => Promise<Return> }
							 | 
						||
| 
								 | 
							
								  // ...args: [...Args, Callback]
							 | 
						||
| 
								 | 
							
								  | { errback(...args: any[]): void }
							 | 
						||
| 
								 | 
							
								);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								declare module.exports: {
							 | 
						||
| 
								 | 
							
								  <Args, Return>(
							 | 
						||
| 
								 | 
							
								    Options<Args, Return> | ((...args: Args) => Handler<Return>)
							 | 
						||
| 
								 | 
							
								  ): Gensync<Args, Return>,
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  all<Return>(Array<Handler<Return>>): Handler<Return[]>,
							 | 
						||
| 
								 | 
							
								  race<Return>(Array<Handler<Return>>): Handler<Return>,
							 | 
						||
| 
								 | 
							
								};
							 |