diff --git a/src/cmd/lint.js b/src/cmd/lint.js index ec0ef2412b..5f6a40edda 100644 --- a/src/cmd/lint.js +++ b/src/cmd/lint.js @@ -16,6 +16,7 @@ export type LinterCreatorParams = { logLevel: 'debug' | 'fatal', stack: boolean, pretty?: boolean, + warningsAsErrors?: boolean, metadata?: boolean, output?: LinterOutputType, boring?: boolean, @@ -42,6 +43,7 @@ export type LintCmdParams = { output?: LinterOutputType, metadata?: boolean, pretty?: boolean, + warningsAsErrors?: boolean, }; export type LintCmdOptions = { @@ -52,7 +54,7 @@ export type LintCmdOptions = { export default function lint( { verbose, sourceDir, selfHosted, boring, output, - metadata, pretty, + metadata, pretty, warningsAsErrors, }: LintCmdParams, { createLinter = defaultLinterCreator, @@ -65,6 +67,7 @@ export default function lint( logLevel: verbose ? 'debug' : 'fatal', stack: Boolean(verbose), pretty, + warningsAsErrors, metadata, output, boring, diff --git a/src/program.js b/src/program.js index acdf012602..202e0f53a9 100644 --- a/src/program.js +++ b/src/program.js @@ -297,6 +297,11 @@ Example: $0 --help run. type: 'boolean', default: false, }, + 'warnings-as-errors': { + describe: 'Treat warnings as errors', + type: 'boolean', + default: false, + }, 'pretty': { describe: 'Prettify JSON output', type: 'boolean', diff --git a/tests/unit/test-cmd/test.lint.js b/tests/unit/test-cmd/test.lint.js index c86850459a..fb822dcadd 100644 --- a/tests/unit/test-cmd/test.lint.js +++ b/tests/unit/test-cmd/test.lint.js @@ -65,6 +65,14 @@ describe('lint', () => { }); }); + it('passes warningsAsErrors to the linter', () => { + const {lint, createLinter} = setUp(); + return lint({warningsAsErrors: true}).then(() => { + const config = createLinter.firstCall.args[0].config; + assert.equal(config.warningsAsErrors, true); + }); + }); + it('configures the linter when verbose', () => { const {lint, createLinter} = setUp(); return lint({verbose: true}).then(() => { @@ -96,6 +104,8 @@ describe('lint', () => { boring: 'boring flag', // $FLOW_IGNORE: wrong type used for testing purpose selfHosted: 'self-hosted flag', + // $FLOW_IGNORE: wrong type used for testing purpose + warningsAsErrors: 'warnings-as-errors flag', }).then(() => { const config = createLinter.firstCall.args[0].config; assert.equal(config.pretty, 'pretty flag'); @@ -103,6 +113,7 @@ describe('lint', () => { assert.equal(config.output, 'output value'); assert.equal(config.boring, 'boring flag'); assert.equal(config.selfHosted, 'self-hosted flag'); + assert.equal(config.warningsAsErrors, 'warnings-as-errors flag'); }); });