|
1234567891011121314151617181920212223242526272829303132 |
- // @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>,
- };
|