Find built-in ESLint rules you don't have in your custom config.
npm install eslint-find-rules
Use this for your own ESLint shareable configuration
to list current configured rules, all-available rules, unused rules, and plugin rules.







This module is an extended version of eslint-find-new-rules
Simply install locally as a development dependency to your project's package:
```
npm install --save-dev eslint-find-rules
> It is expected to be used as local utility, as it needs eslint and the eslint-plugins being referred by the eslint-config file, to be installed.global
Using it as a utility, will error out, if eslint and the eslint-plugins being referred by the eslint-config file, are not installed globally.
The intended usage is as an npm script:
`javascript`
{
...
"scripts": {
"eslint-find-option-rules": "eslint-find-rules [option]
}
...
}
Then run it with: $ npm run --silent eslint-find-option-rules (the --silent is to silence npm output).
``
available options are -a|--all-available, -c|--current, -d|--deprecated, -p|--plugin, -u|--unused
available flags are -n|--no-error, --no-core, -i/--include deprecated, --ext .js, and --flatConfig
By default it will error out only for -d|--deprecated and -u|--unused,process
however if you do not want the to exit with a non-zero exit code, use the -n|--no-error flag along with -d|--deprecated or -u|--unused.
By default, core rules will be included in the output of -a|--all-available, -c|--current, -d|--deprecated, and -u|--unused. If you want to report on plugin rules only, use the --no-core flag.
By default, deprecated rules will be omitted from the output of -a|--all-available, -p|--plugin and -u|--unused. If you want to report on deprecated rules as well, use the --include=deprecated or -i deprecated flag.
By default, rules will be searched for files having .js extension. If you want to find rules using another extension (.json for example), use the --ext .json flag (or --ext .js --ext .json if you need multiple extensions).
By default, ESLint will handle configs in Legacy mode. If you want to handle Flat config files, you need to add the --flatConfig flag.
NOTE: Deprecated rules are found by looking at the metadata of the rule definition. All core rules and many plugin rules use this flag to indicate deprecated rules. But if you find a plugin that does not mark their rules as deprecated in the rule metadata, please file a pull request with that project.
This is really handy in an actual config module (like eslint-config-kentcdodds) where you could also do:
``
// available options are -a|--all-available, -c|--current, -d|--deprecated, -p|--plugin, -u|--unused
eslint-find-rules --option ./index.js
This is resolved, relative to the process.cwd() which, in the context of npm scripts is always the location of your package.json.
You may specify any config format supported by ESLint.
You can also provide an absolute path:
``
eslint-find-rules --option ~/Developer/eslint-config-kentcdodds/index.js
Please note that any tested ESLint config file must reside below your project's root.
It will also default to the main in your package.json, so you can omit the path/to/file argument:
``
eslint-find-rules --option
`
var getRuleFinder = require('./eslint-find-rules')
var ruleFinder = getRuleFinder('path/to/eslint-config')
// default to the main in your package.json
// var ruleFinder = await getRuleFinder()
// get all the current, plugin, available and unused rules
// without referring the extended files or documentation
ruleFinder.getCurrentRules()
ruleFinder.getCurrentRulesDetailed()
ruleFinder.getPluginRules()
ruleFinder.getAllAvailableRules()
ruleFinder.getUnusedRules()
ruleFinder.getDeprecatedRules()
`
`javascript``
{
...
"scripts": {
"eslint-diff-rules": "eslint-diff-rules
}
...
}
Thanks goes to these wonderful people (emoji key):
|
Sarbbottam Bandyopadhyay
๐ป ๐ โ ๏ธ ๐ |
Andreas Windt
๐ป ๐ โ ๏ธ ๐ |
Kent C. Dodds
๐ป ๐ โ ๏ธ ๐ |
Scott Nonnenberg
๐ป โ ๏ธ |
Michaล Goลฤbiowski
๐ป |
Jeroen Engels
๐ |
Dustin Specker
๐ป |
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
|
Randy Coulman
๐ป โ ๏ธ |
Jordan Harband
๐ ๐ ๐ป ๐ฌ ๐ โ ๏ธ ๐") |
Brad Zacher
๐ป โ ๏ธ |
This project follows the all-contributors specification.
Contributions of any kind welcome!
Special thanks to @mgol who created the original script.
MIT