Exclude react-dom when flow checking other builds (#16737)
This is because the HostConfig can't be guaranteed to be consistent with other code such as code that touches the DOM directly. Ideally we'd have a more systemic solution to this since it will pop up for other packages later too.
Sebastian Markbåge committed
Sep 19, 2019 at 12:41 UTC
35bf9d27a3f9fdf60cea060d20b5c178e437520d
2 files changed
+19
-4
scripts/flow/config/flowconfig
+2
@@ -13,6 +13,8 @@
13
.*/__mocks__/.*
14
.*/__tests__/.*
15
16
+%REACT_RENDERER_FLOW_IGNORES%
17
+
18
[include]
19
../../../node_modules/
20
../../../packages/
scripts/flow/createFlowConfigs.js
+17
-4
@@ -23,16 +23,29 @@ function writeConfig(renderer, isFizzSupported) {
23
mkdirp.sync(folder);
24
25
const fizzRenderer = isFizzSupported ? renderer : 'custom';
26
- const config = configTemplate.replace(
27
- '%REACT_RENDERER_FLOW_OPTIONS%',
28
- `
26
+ const config = configTemplate
27
+ .replace(
28
+ '%REACT_RENDERER_FLOW_OPTIONS%',
29
+ `
30
module.name_mapper='react-reconciler/inline.${renderer}$$' -> 'react-reconciler/inline-typed'
31
module.name_mapper='ReactFiberHostConfig$$' -> 'forks/ReactFiberHostConfig.${renderer}'
32
module.name_mapper='react-stream/inline.${renderer}$$' -> 'react-stream/inline-typed'
33
module.name_mapper='ReactFizzHostConfig$$' -> 'forks/ReactFizzHostConfig.${fizzRenderer}'
34
module.name_mapper='ReactFizzFormatConfig$$' -> 'forks/ReactFizzFormatConfig.${fizzRenderer}'
35
`.trim(),
35
- );
36
+ )
37
+ .replace(
38
+ '%REACT_RENDERER_FLOW_IGNORES%',
39
+ renderer === 'dom' || renderer === 'dom-browser'
40
+ ? ''
41
+ : // If we're not checking DOM, ignore the DOM package since it
42
+ // won't be consistent.
43
+ `
44
+ .*/packages/react-dom/.*
45
+ .*/packages/.*/forks/.*.dom.js
46
+ .*/packages/.*/forks/.*.dom-browser.js
47
+ `.trim(),
48
+ );
49
50
const disclaimer = `
51
# ---------------------------------------------------------------#