yarn run v0.19.1
$ flow
Launching Flow server for /home/ubuntu/debugger.html
Spawned flow server (pid=19940)
Logs will go to /tmp/flow/zShomezSubuntuzSdebugger.html.log
src/components/Editor/SearchBar.js:98
98: this.searchInput().focus();
^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `focus`. Method cannot be called on possibly null value
98: this.searchInput().focus();
^^^^^^^^^^^^^^^^^^ null
src/components/Editor/SearchBar.js:202
202: this.searchInput().value = value;
^^^^^ property `value`. Property cannot be assigned on possibly null value
202: this.searchInput().value = value;
^^^^^^^^^^^^^^^^^^ null
src/components/Editor/SearchBar.js:202
202: this.searchInput().value = value;
^^^^^ property `value`. Property not found in
202: this.searchInput().value = value;
^^^^^^^^^^^^^^^^^^ HTMLElement
src/components/Editor/SearchBar.js:208
208: node.setSelectionRange(0, node.value.length);
^^^^^^^^^^^^^^^^^ property `setSelectionRange`. Property not found in
208: node.setSelectionRange(0, node.value.length);
^^^^ HTMLElement
src/components/Editor/SearchBar.js:208
208: node.setSelectionRange(0, node.value.length);
^^^^^ property `value`. Property not found in
208: node.setSelectionRange(0, node.value.length);
^^^^ HTMLElement
src/components/Editor/SearchBar.js:213
213: return findDOMNode(this).querySelector("input");
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `querySelector`. Method cannot be called on possibly null value
213: return findDOMNode(this).querySelector("input");
^^^^^^^^^^^^^^^^^ null
src/components/Editor/SearchBar.js:213
213: return findDOMNode(this).querySelector("input");
^^^^^^^^^^^^^ property `querySelector`. Property not found in
213: return findDOMNode(this).querySelector("input");
^^^^^^^^^^^^^^^^^ Text
src/components/Editor/Tabs.js:40
40: return sourceTabs.filter((tab, index) => {
^ call of method `filter`. Method cannot be called on possibly undefined value
40: return sourceTabs.filter((tab, index) => {
^^^^^^^^^^ undefined
src/components/Editor/Tabs.js:131
131: const tabs = sourceTabs.map(t => t.get("id"));
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `map`. Method cannot be called on possibly undefined value
131: const tabs = sourceTabs.map(t => t.get("id"));
^^^^^^^^^^ undefined
src/components/Editor/Tabs.js:132
132: const otherTabs = sourceTabs.filter(t => t.get("id") !== tab);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `filter`. Method cannot be called on possibly undefined value
132: const otherTabs = sourceTabs.filter(t => t.get("id") !== tab);
^^^^^^^^^^ undefined
src/components/Editor/Tabs.js:133
133: const sourceTab = sourceTabs.find(t => t.get("id") == tab);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `find`. Method cannot be called on possibly undefined value
133: const sourceTab = sourceTabs.find(t => t.get("id") == tab);
^^^^^^^^^^ undefined
src/components/Editor/Tabs.js:134
134: const tabURLs = sourceTabs.map(thisTab => thisTab.get("url"));
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `map`. Method cannot be called on possibly undefined value
134: const tabURLs = sourceTabs.map(thisTab => thisTab.get("url"));
^^^^^^^^^^ undefined
src/components/Editor/Tabs.js:259
259: sourceTabs.map(this.renderTab)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `map`. Method cannot be called on possibly undefined value
259: sourceTabs.map(this.renderTab)
^^^^^^^^^^ undefined
src/components/SecondaryPanes/Breakpoints.js:129
129: (breakpoints.size === 0 ?
^^^^ property `size`. Property not found in possibly undefined value
129: (breakpoints.size === 0 ?
^^^^^^^^^^^ undefined
src/components/SecondaryPanes/Breakpoints.js:131
131: breakpoints.valueSeq().map(bp => {
^^^^^^^^^^^^^^^^^^^^^^ call of method `valueSeq`. Method cannot be called on possibly undefined value
131: breakpoints.valueSeq().map(bp => {
^^^^^^^^^^^ undefined
src/components/SecondaryPanes/ChromeScopes.js:55
55: this.objectCache = {};
^^^^^^^^^^^ property `objectCache`. Property not found in
55: this.objectCache = {};
^^^^ React component
src/components/SecondaryPanes/ChromeScopes.js:114
114: this.props.loadedObjects.get(item.contents.value.objectId);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `get`. Method cannot be called on possibly undefined value
114: this.props.loadedObjects.get(item.contents.value.objectId);
^^^^^^^^^^^^^^^^^^^^^^^^ undefined
src/components/SecondaryPanes/ChromeScopes.js:134
134: if (this.objectCache[key]) {
^^^^^^^^^^^ property `objectCache`. Property not found in
134: if (this.objectCache[key]) {
^^^^ React component
src/components/SecondaryPanes/ChromeScopes.js:141
141: this.objectCache[objectId] = children;
^^^^^^^^^^^ property `objectCache`. Property not found in
141: this.objectCache[objectId] = children;
^^^^ React component
src/components/SecondaryPanes/ChromeScopes.js:153
153: loadObjectProperties(item.contents.value);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function call. Function cannot be called on possibly undefined value
153: loadObjectProperties(item.contents.value);
^^^^^^^^^^^^^^^^^^^^ undefined
src/components/SecondaryPanes/ChromeScopes.js:158
158: return this.props.scopes.map(scope => {
^ call of method `map`. Method cannot be called on possibly undefined value
158: return this.props.scopes.map(scope => {
^^^^^^^^^^^^^^^^^ undefined
src/components/SecondaryPanes/CommandBar.js:79
79: button.style.opacity = "1";
^^^^^ property `style`. Property cannot be accessed on possibly null value
79: button.style.opacity = "1";
^^^^^^ null
src/components/SecondaryPanes/CommandBar.js:80
80: button.style.transform = "none";
^^^^^ property `style`. Property cannot be accessed on possibly null value
80: button.style.transform = "none";
^^^^^^ null
src/components/SecondaryPanes/CommandBar.js:151
151: this.props[action]();
^^^^^^^^^^^^^^^^^^^^ call of computed property. Function cannot be called on possibly undefined value
103: resume: PropTypes.func,
^^^^^^^^^^^^^^ undefined
src/components/SecondaryPanes/CommandBar.js:151
151: this.props[action]();
^^^^^^^^^^^^^^^^^^^^ call of computed property. Function cannot be called on possibly undefined value
104: stepIn: PropTypes.func,
^^^^^^^^^^^^^^ undefined
src/components/SecondaryPanes/CommandBar.js:151
151: this.props[action]();
^^^^^^^^^^^^^^^^^^^^ call of computed property. Function cannot be called on possibly undefined value
105: stepOut: PropTypes.func,
^^^^^^^^^^^^^^ undefined
src/components/SecondaryPanes/CommandBar.js:151
151: this.props[action]();
^^^^^^^^^^^^^^^^^^^^ call of computed property. Function cannot be called on possibly undefined value
106: stepOver: PropTypes.func,
^^^^^^^^^^^^^^ undefined
src/components/SecondaryPanes/CommandBar.js:152
152: const button = findDOMNode(this).querySelector(`.${action}`);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `querySelector`. Method cannot be called on possibly null value
152: const button = findDOMNode(this).querySelector(`.${action}`);
^^^^^^^^^^^^^^^^^ null
src/components/SecondaryPanes/CommandBar.js:152
152: const button = findDOMNode(this).querySelector(`.${action}`);
^^^^^^^^^^^^^ property `querySelector`. Property not found in
152: const button = findDOMNode(this).querySelector(`.${action}`);
^^^^^^^^^^^^^^^^^ Text
src/components/SecondaryPanes/CommandBar.js:228
228: () => pauseOnExceptions(true, true),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function call. Function cannot be called on possibly undefined value
228: () => pauseOnExceptions(true, true),
^^^^^^^^^^^^^^^^^ undefined
src/components/SecondaryPanes/CommandBar.js:237
237: () => pauseOnExceptions(true, false),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function call. Function cannot be called on possibly undefined value
237: () => pauseOnExceptions(true, false),
^^^^^^^^^^^^^^^^^ undefined
src/components/SecondaryPanes/CommandBar.js:245
245: () => pauseOnExceptions(false, false),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ function call. Function cannot be called on possibly undefined value
245: () => pauseOnExceptions(false, false),
^^^^^^^^^^^^^^^^^ undefined
src/components/SecondaryPanes/Expressions.js:144
144: getObjectProperties: id => loadedObjects.get(id),
^^^^^^^^^^^^^^^^^^^^^ call of method `get`. Method cannot be called on possibly undefined value
144: getObjectProperties: id => loadedObjects.get(id),
^^^^^^^^^^^^^ undefined
src/components/SecondaryPanes/Expressions.js:192
192: expressions.map(this.renderExpression),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `map`. Method cannot be called on possibly undefined value
192: expressions.map(this.renderExpression),
^^^^^^^^^^^ undefined
src/components/SecondaryPanes/Frames.js:101
101: onMouseDown: (e) => this.onMouseDown(e, frame, selectedFrame),
^^^^^^^^^^^^^ undefined. This type is incompatible with the expected param type of
111: onMouseDown(e: SyntheticKeyboardEvent, frame: Frame, selectedFrame: Frame) {
^^^^^ object type
src/components/SecondaryPanes/Frames.js:102
102: onKeyUp: (e) => this.onKeyUp(e, frame, selectedFrame),
^^^^^^^^^^^^^ undefined. This type is incompatible with the expected param type of
118: onKeyUp(event: SyntheticKeyboardEvent, frame: Frame, selectedFrame: Frame) {
^^^^^ object type
src/components/SecondaryPanes/Scopes.js:63
63: getObjectProperties: id => loadedObjects.get(id),
^^^^^^^^^^^^^^^^^^^^^ call of method `get`. Method cannot be called on possibly undefined value
63: getObjectProperties: id => loadedObjects.get(id),
^^^^^^^^^^^^^ undefined
src/components/SecondaryPanes/index.js:73
73: breakpoints.some(x => x.disabled);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `some`. Method cannot be called on possibly undefined value
73: breakpoints.some(x => x.disabled);
^^^^^^^^^^^ undefined
src/components/SecondaryPanes/index.js:75
75: if (breakpoints.size == 0) {
^^^^ property `size`. Property not found in possibly undefined value
75: if (breakpoints.size == 0) {
^^^^^^^^^^^ undefined
src/components/SourcesTree.js:87
87: if (nextProps.sources.size === 0) {
^^^^ property `size`. Property not found in possibly undefined value
87: if (nextProps.sources.size === 0) {
^^^^^^^^^^^^^^^^^ undefined
src/components/SourcesTree.js:92
92: const next = Set(nextProps.sources.valueSeq());
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `valueSeq`. Method cannot be called on possibly undefined value
92: const next = Set(nextProps.sources.valueSeq());
^^^^^^^^^^^^^^^^^ undefined
src/components/SourcesTree.js:93
93: const prev = Set(this.props.sources.valueSeq());
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `valueSeq`. Method cannot be called on possibly undefined value
93: const prev = Set(this.props.sources.valueSeq());
^^^^^^^^^^^^^^^^^^ undefined
src/components/shared/Autocomplete.js:36
36: const searchInput = findDOMNode(this).querySelector("input");
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `querySelector`. Method cannot be called on possibly null value
36: const searchInput = findDOMNode(this).querySelector("input");
^^^^^^^^^^^^^^^^^ null
src/components/shared/Autocomplete.js:36
36: const searchInput = findDOMNode(this).querySelector("input");
^^^^^^^^^^^^^ property `querySelector`. Property not found in
36: const searchInput = findDOMNode(this).querySelector("input");
^^^^^^^^^^^^^^^^^ Text
src/components/shared/Autocomplete.js:37
37: searchInput.focus();
^^^^^^^^^^^^^^^^^^^ call of method `focus`. Method cannot be called on possibly null value
37: searchInput.focus();
^^^^^^^^^^^ null
src/components/shared/Autocomplete.js:38
38: searchInput.setSelectionRange(endOfInput, endOfInput);
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ call of method `setSelectionRange`. Method cannot be called on possibly null value
38: searchInput.setSelectionRange(endOfInput, endOfInput);
^^^^^^^^^^^ null
src/components/shared/Autocomplete.js:38
38: searchInput.setSelectionRange(endOfInput, endOfInput);
^^^^^^^^^^^^^^^^^ property `setSelectionRange`. Property not found in
38: searchInput.setSelectionRange(endOfInput, endOfInput);
^^^^^^^^^^^ HTMLElement
Found 47 errors
error Command failed with exit code 2.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
yarn run flow returned exit code 1
We get some new errors with 41 which look pretty easy to clean up. Each flow release has been really helpful for us, so we should try to prioritize this.