Skip to content

Latest commit

 

History

History
96 lines (76 loc) · 7.39 KB

README.md

File metadata and controls

96 lines (76 loc) · 7.39 KB

eslint-plugin-eslint-plugin CI NPM version

An ESLint plugin for linting ESLint plugins

Installation

You'll first need to install ESLint:

npm i eslint --save-dev

Next, install eslint-plugin-eslint-plugin:

npm install eslint-plugin-eslint-plugin --save-dev

Usage

Add eslint-plugin to the plugins section of your .eslintrc configuration file. You can omit the eslint-plugin- prefix:

{
    "plugins": [
        "eslint-plugin"
    ]
}

Then configure the rules you want to use under the rules section.

{
    "rules": {
        "eslint-plugin/no-deprecated-report-api": "error"
    }
}

Supported Rules

  • ✔️ if the rule belongs to the recommended configuration
  • 🛠 if some problems reported by the rule are automatically fixable by the --fix command line option
  • 💡 if some problems reported by the rule are manually fixable by editor suggestions
Name ✔️ 🛠 💡 Description
consistent-output enforce consistent use of output assertions in rule tests
fixer-return ✔️ require fixer functions to return a fix
meta-property-ordering 🛠 enforce the order of meta properties
no-deprecated-context-methods 🛠 disallow usage of deprecated methods on rule context objects
no-deprecated-report-api ✔️ 🛠 disallow the version of context.report() with multiple arguments
no-identical-tests ✔️ 🛠 disallow identical tests
no-missing-placeholders ✔️ disallow missing placeholders in rule report messages
no-only-tests 💡 disallow the test case property only
no-unused-placeholders ✔️ disallow unused placeholders in rule report messages
no-useless-token-range ✔️ 🛠 disallow unnecessary calls to sourceCode.getFirstToken() and sourceCode.getLastToken()
prefer-message-ids require using messageId instead of message to report rule violations
prefer-object-rule 🛠 disallow rule exports where the export is a function
prefer-output-null 🛠 disallow invalid RuleTester test cases where the output matches the code
prefer-placeholders require using placeholders for dynamic report messages
prefer-replace-text require using replaceText() instead of replaceTextRange()
report-message-format enforce a consistent format for rule report messages
require-meta-docs-description require rules to implement a meta.docs.description property with the correct format
require-meta-docs-url 🛠 require rules to implement a meta.docs.url property
require-meta-fixable ✔️ require rules to implement a meta.fixable property
require-meta-has-suggestions 🛠 require suggestable rules to implement a meta.hasSuggestions property
require-meta-schema 🛠 require rules to implement a meta.schema property
require-meta-type require rules to implement a meta.type property
test-case-property-ordering 🛠 require the properties of a test case to be placed in a consistent order
test-case-shorthand-strings 🛠 enforce consistent usage of shorthand strings for test cases with no options

Supported Presets

Presets are enabled by adding a line to the extends list in your config file. For example, to enable the recommended preset, use:

{
    "extends": [
        "plugin:eslint-plugin/recommended"
    ]
}
  • recommended enables all recommended rules from this plugin.

  • rules-recommended enables all recommended rules that are aimed at linting ESLint rule files.

  • tests-recommended enables all recommended rules that are aimed at linting ESLint test files.

  • all enables all rules in this plugin.

  • rules enables all rules that are aimed at linting ESLint rule files.

  • tests enables all rules that are aimed at linting ESLint test files.

The list of recommended rules will only change in a major release of this plugin. However, new non-recommended rules might be added in a minor release of this plugin. Therefore, the using the all, rules, and tests presets is not recommended for production use, because the addition of new rules in a minor release could break your build.