You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
851 B
30 lines
851 B
// @flow
|
|
const isProduction: boolean = process.env.NODE_ENV === 'production';
|
|
|
|
export default function warning(condition: mixed, message: string): void {
|
|
// don't do anything in production
|
|
// wrapping in production check for better dead code elimination
|
|
if (!isProduction) {
|
|
// condition passed: do not log
|
|
if (condition) {
|
|
return;
|
|
}
|
|
|
|
// Condition not passed
|
|
const text: string = `Warning: ${message}`;
|
|
|
|
// check console for IE9 support which provides console
|
|
// only with open devtools
|
|
if (typeof console !== 'undefined') {
|
|
console.warn(text);
|
|
}
|
|
|
|
// Throwing an error and catching it immediately
|
|
// to improve debugging
|
|
// A consumer can use 'pause on caught exceptions'
|
|
// https://github.com/facebook/react/issues/4216
|
|
try {
|
|
throw Error(text);
|
|
} catch (x) {}
|
|
}
|
|
}
|
|
|