Suppress known/expected warnings and errors in local DEV shell

This commit is contained in:
Brian Vaughn
2019-08-04 14:33:38 -07:00
parent 38838617d3
commit 1105722b4b
2 changed files with 38 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
// @flow
function ignoreStrings(
methodName: string,
stringsToIgnore: Array<string>
): void {
const originalMethod = console[methodName];
console[methodName] = (...args) => {
const maybeString = args[0];
if (typeof maybeString === 'string') {
for (let i = 0; i < stringsToIgnore.length; i++) {
if (maybeString.startsWith(stringsToIgnore[i])) {
return;
}
}
}
originalMethod(...args);
};
}
export function ignoreErrors(errorsToIgnore: Array<string>): void {
ignoreStrings('error', errorsToIgnore);
}
export function ignoreWarnings(warningsToIgnore: Array<string>): void {
ignoreStrings('warn', warningsToIgnore);
}
+11
View File
@@ -19,9 +19,20 @@ import ReactNativeWeb from './ReactNativeWeb';
import ToDoList from './ToDoList';
import Toggle from './Toggle';
import SuspenseTree from './SuspenseTree';
import { ignoreErrors, ignoreWarnings } from './console';
import './styles.css';
// DevTools intentionally tests compatibility with certain legacy APIs.
// Suppress their error messages in the local dev shell,
// because they might mask other more serious error messages.
ignoreErrors([
'Warning: Legacy context API',
'Warning: Unsafe lifecycle methods',
'Warning: %s is deprecated in StrictMode.', // findDOMNode
]);
ignoreWarnings(['Warning: componentWillReceiveProps is deprecated']);
const roots = [];
function mountHelper(App) {