From e2e246afd38dad4ee78d45143fe58e7d878c313c Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Tue, 14 May 2019 23:48:50 -0500 Subject: [PATCH] version detection: `detect`: only warn once Closes #2276. --- lib/util/version.js | 10 ++++++++-- tests/util/version.js | 1 + 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/util/version.js b/lib/util/version.js index f311d7b84b..f28288afd9 100644 --- a/lib/util/version.js +++ b/lib/util/version.js @@ -9,15 +9,20 @@ const error = require('./error'); let warnedForMissingVersion = false; +function resetWarningFlag() { + warnedForMissingVersion = false; +} + function detectReactVersion() { try { const reactPath = resolve.sync('react', {basedir: process.cwd()}); const react = require(reactPath); return react.version; } catch (e) { - if (e.code === 'MODULE_NOT_FOUND') { + if (!warnedForMissingVersion && e.code === 'MODULE_NOT_FOUND') { error('Warning: React version was set to "detect" in eslint-plugin-react settings, ' + 'but the "react" package is not installed. Assuming latest React version for linting.'); + warnedForMissingVersion = true; return '999.999.999'; } throw e; @@ -107,5 +112,6 @@ function testFlowVersion(context, methodVer) { module.exports = { testReactVersion, - testFlowVersion + testFlowVersion, + resetWarningFlag }; diff --git a/tests/util/version.js b/tests/util/version.js index cf0eaf034c..5eacb4633f 100644 --- a/tests/util/version.js +++ b/tests/util/version.js @@ -15,6 +15,7 @@ describe('Version', () => { process.chdir(base); sinon.stub(console, 'error'); expectedErrorArgs = []; + versionUtil.resetWarningFlag(); }); afterEach(() => {