Skip to content

shinnn/run-eslint

Repository files navigation

run-eslint

npm version Build Status codecov

Execute ESLint with a simplified API

const runEslint = require('run-eslint');

runEslint(['src/'], {
  fix: true,
  formatter: 'codeframe'
});

Without this module,

const {CLIEngine} = require('eslint');

const cli = new CLIEngine({fix: true});
const report = cli.executeOnFiles(['src/']);
const messages = cli.getFormatter('codeframe')(report.results);

CLIEngine.outputFixes(report);

if (report.errorCount !== 0) {
  throw new Error(messages);
}

if (report.warningCount !== 0) {
  console.log(messages);
}

Installation

Use npm.

npm install run-eslint

API

const runEslint = require('run-eslint');

runEslint(paths[, options])

paths: string[] (file and/or directory paths, directly passed to CLIEngine#executeOnFiles())
options: Object (CLIEngine options)
Return: Object (return value of CLIEngine#executeOnFiles())

It lints files, fixes problems when fix option is true, throws an error with the formatted messages.

runEslint(['some', 'invalid', 'files']);
/* throws an Error: ESLint found problems in 2 files.

/Users/shinnn/invalid/a.js
1:1  error  Parsing error: Unexpected token }

/Users/shinnn/files/b.js
1:1  error  'v' is not defined  no-undef
2:2  error  Missing semicolon   semi

✖ 3 problems (3 errors, 0 warnings)
1 error and 0 warnings potentially fixable with the `--fix` option.
`*/

When every problem is a [warn level](instead of throwing an Error), it just print messages to the stdout instead of throwing an Error.

options.formatter

Type: string (a built-in formatter name or a path to a custom formatter) Default: same as the CLIEngine#getFormatter()'s default

Set the formatter used when reporting problems.

runEslint((['source.js'], {
  rules: {
    'no-console': 'warn'
  }
});
/*
/Users/shinnn/source.js
  1:1  warning  Unexpected console statement  no-console

✖ 1 problem (0 errors, 1 warning)
*/

runEslint((['source.js'], {
  rules: {
    'no-console': 'warn'
  },
  formatter: 'codeframe'
});
/*
warning: Unexpected console statement (no-console) at source.js:1:1:
> 1 | console.log(1);
    | ^
  2 |


1 warning found.
*/

License

ISC License © 2018 Shinnosuke Watanabe

About

Execute ESLint with a simplified API

Resources

License

Stars

Watchers

Forks

Packages

No packages published