diff --git a/.flowconfig b/.flowconfig index cf582afec..4b51cb2fd 100644 --- a/.flowconfig +++ b/.flowconfig @@ -87,9 +87,9 @@ suppress_type=$FlowIssue suppress_type=$FlowFixMe suppress_type=$FixMe -suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-2]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) -suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-2]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ +suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(>=0\\.\\(2[0-3]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\) +suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(>=0\\.\\(2[0-3]\\|1[0-9]\\|[0-9]\\).[0-9]\\)? *\\(site=[a-z,_]*react_native[a-z,_]*\\)?)\\)?:? #[0-9]+ suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy [version] -^0.22.0 +0.23.0 diff --git a/flow/Promise.js b/flow/Promise.js new file mode 100644 index 000000000..510e3d5d0 --- /dev/null +++ b/flow/Promise.js @@ -0,0 +1,40 @@ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + +// These annotations are copy/pasted from the built-in Flow definitions for +// Native Promises with some non-standard APIs added in +declare class Promise<+R> { + constructor(callback: ( + resolve: (result?: Promise | R) => void, + reject: (error?: any) => void + ) => mixed): void; + + then( + onFulfill?: ?(value: R) => Promise | ?U, + onReject?: ?(error: any) => Promise | ?U + ): Promise; + + catch( + onReject?: (error: any) => ?Promise | U + ): Promise; + + static resolve(object?: Promise | T): Promise; + static reject(error?: any): Promise; + + static all: Promise$All; + static race(promises: Array>): Promise; + + // Non-standard APIs + done( + onFulfill?: ?(value: R) => mixed, + onReject?: ?(error: any) => mixed + ): void; + + static cast(object?: T): Promise; +}