summaryrefslogtreecommitdiff
path: root/node_modules/promise/index.js.flow
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/promise/index.js.flow')
-rw-r--r--node_modules/promise/index.js.flow52
1 files changed, 52 insertions, 0 deletions
diff --git a/node_modules/promise/index.js.flow b/node_modules/promise/index.js.flow
new file mode 100644
index 0000000..9c390d4
--- /dev/null
+++ b/node_modules/promise/index.js.flow
@@ -0,0 +1,52 @@
+// @flow
+
+declare class ThenPromise<+R> extends Promise<R> {
+ constructor(callback: (
+ resolve: (result: Promise<R> | R) => void,
+ reject: (error: any) => void
+ ) => mixed): void;
+
+
+ then(onFulfill: null | void, onReject: null | void): ThenPromise<R>;
+ then<U>(
+ onFulfill: null | void,
+ onReject: (error: any) => Promise<U> | U
+ ): ThenPromise<R | U>;
+ then<U>(
+ onFulfill: (value: R) => Promise<U> | U,
+ onReject: null | void | ((error: any) => Promise<U> | U)
+ ): ThenPromise<U>;
+
+
+ catch(onReject: null | void): ThenPromise<R>;
+ catch<U>(
+ onReject: (error: any) => Promise<U> | U
+ ): ThenPromise<R | U>;
+
+ // Extensions specific to then/promise
+
+ /**
+ * Attaches callbacks for the resolution and/or rejection of the ThenPromise, without returning a new promise.
+ * @param onfulfilled The callback to execute when the ThenPromise is resolved.
+ * @param onrejected The callback to execute when the ThenPromise is rejected.
+ */
+ done(onfulfilled?: (value: R) => any, onrejected?: (reason: any) => any): void;
+
+
+ /**
+ * Calls a node.js style callback. If none is provided, the promise is returned.
+ */
+ nodeify(callback: void | null): ThenPromise<R>;
+ nodeify(callback: (err: Error, value: R) => void): void;
+
+ static resolve<T>(object: Promise<T> | T): ThenPromise<T>;
+ static reject<T>(error?: any): ThenPromise<T>;
+ static all<T: Iterable<mixed>>(promises: T): ThenPromise<$TupleMap<T, typeof $await>>;
+ static race<T, Elem: Promise<T> | T>(promises: Iterable<Elem>): ThenPromise<T>;
+
+ // Extensions specific to then/promise
+
+ static denodeify(fn: Function): (...args: any[]) => ThenPromise<any>;
+ static nodeify(fn: Function): Function;
+}
+module.exports = ThenPromise;