7.0.0 • Published 5 years ago

unconfigured-eslint-rules v7.0.0

Weekly downloads
9
License
ISC
Repository
github
Last release
5 years ago

unconfigured-eslint-rules

npm version GitHub Actions codecov

Detect unconfigured ESLint rules

/*
    ./eslintrc.js:

    module.exports = {
      rules: {
        'no-alert': 'error',
        'no-array-constructor': 'warn',
        'no-bitwise': 'off',
        'linebreak-style': ['error', "unix"],
      }
    }
*/

const unconfiguredESLintRules = require('unconfigured-eslint-rules');
const unconfigured = unconfiguredESLintRules(); //=> ['no-caller', 'no-catch-shadow', 'no-class-assign', ...]

unconfigured.includes('no-alert'); //=> false
unconfigured.includes('no-array-constructor'); //=> false
unconfigured.includes('no-bitwise'); //=> false
unconfigured.includes('linebreak-style'); //=> false

This module is designed to help developing sharable configs. When a developer updates ESLint and the latest version introduces new rules, unconfiguredESLintRules().length increases and they'll notice those new rules. @shinnn/eslint-config provides a real world example of this approach.

Installation

Use npm.

npm install unconfigured-eslint-rules

API

const unconfiguredEslintRules = require('unconfigured-eslint-rules');

unconfiguredEslintRules(options)

options: Object (ESLint CLIEngine constructor options)
Return: string[]

The API is the same as configured-eslint-rules', but returns the inverse – an Array of rule names with no rule configurations.

/*
    ./my-dir/.eslintrc.json:

    {
      "rules": {
        "semi": ["error", "always"]
      }
    }
*/

unconfiguredEslintRules().includes('semi'); //=> true

process.chdir('my-dir');

unconfiguredEslintRules().includes('semi'); //=> false

The argument will be directly passed to the underlying CLIEngine constructor and affects the result.

/*
    ./eslintrc.yml:

    rules:
      eqeqeq: warn
*/

unconfiguredEslintRules({}).includes('curly'); //=> false
unconfiguredEslintRules({rules: {curly: 'warn'}}).includes('curly'); //=> true

License

ISC License © 2018 - 2019 Watanabe Shinnosuke

7.0.0

5 years ago

6.0.0

6 years ago

6.0.0-0

6 years ago

5.0.0

7 years ago

4.0.0

7 years ago

3.0.0

8 years ago

2.0.0

8 years ago

1.0.1

9 years ago

1.0.0

9 years ago

0.0.1

9 years ago