From 8634d844c8543ce878e4f13d6f9ac39f61c90679 Mon Sep 17 00:00:00 2001 From: Bryan Mishkin <698306+bmish@users.noreply.github.com> Date: Tue, 12 Jul 2022 05:13:52 -0400 Subject: [PATCH] breaking: add `recommended` rules `prefer-message-ids`, `prefer-output-null`, `no-missing-message-ids`, `no-unused-message-ids` (#258) * breaking: add `recommended` rules `prefer-message-ids`, `prefer-output-null`, `no-missing-message-ids`, `no-unused-message-ids`, remove `consistent-output` * re-enable consistent-output as recommended --- README.md | 8 ++++---- docs/rules/no-missing-message-ids.md | 2 ++ docs/rules/no-unused-message-ids.md | 2 ++ docs/rules/prefer-message-ids.md | 2 ++ docs/rules/prefer-output-null.md | 2 ++ lib/rules/no-missing-message-ids.js | 2 +- lib/rules/no-unused-message-ids.js | 2 +- lib/rules/prefer-message-ids.js | 2 +- lib/rules/prefer-output-null.js | 2 +- 9 files changed, 16 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index f9c2cd5b..59f09c65 100644 --- a/README.md +++ b/README.md @@ -67,15 +67,15 @@ Name | ✔️ | 🛠 | 💡 | Description [no-deprecated-context-methods](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-deprecated-context-methods.md) | ✔️ | 🛠 | | disallow usage of deprecated methods on rule context objects [no-deprecated-report-api](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-deprecated-report-api.md) | ✔️ | 🛠 | | disallow the version of `context.report()` with multiple arguments [no-identical-tests](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-identical-tests.md) | ✔️ | 🛠 | | disallow identical tests -[no-missing-message-ids](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-missing-message-ids.md) | | | | disallow `messageId`s that are missing from `meta.messages` +[no-missing-message-ids](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-missing-message-ids.md) | ✔️ | | | disallow `messageId`s that are missing from `meta.messages` [no-missing-placeholders](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-missing-placeholders.md) | ✔️ | | | disallow missing placeholders in rule report messages [no-only-tests](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-only-tests.md) | ✔️ | | 💡 | disallow the test case property `only` -[no-unused-message-ids](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-unused-message-ids.md) | | | | disallow unused `messageId`s in `meta.messages` +[no-unused-message-ids](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-unused-message-ids.md) | ✔️ | | | disallow unused `messageId`s in `meta.messages` [no-unused-placeholders](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-unused-placeholders.md) | ✔️ | | | disallow unused placeholders in rule report messages [no-useless-token-range](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/no-useless-token-range.md) | ✔️ | 🛠 | | disallow unnecessary calls to `sourceCode.getFirstToken()` and `sourceCode.getLastToken()` -[prefer-message-ids](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-message-ids.md) | | | | require using `messageId` instead of `message` to report rule violations +[prefer-message-ids](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-message-ids.md) | ✔️ | | | require using `messageId` instead of `message` to report rule violations [prefer-object-rule](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-object-rule.md) | ✔️ | 🛠 | | disallow function-style rules -[prefer-output-null](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-output-null.md) | | 🛠 | | disallow invalid RuleTester test cases where the `output` matches the `code` +[prefer-output-null](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-output-null.md) | ✔️ | 🛠 | | disallow invalid RuleTester test cases where the `output` matches the `code` [prefer-placeholders](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-placeholders.md) | | | | require using placeholders for dynamic report messages [prefer-replace-text](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/prefer-replace-text.md) | | | | require using `replaceText()` instead of `replaceTextRange()` [report-message-format](https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/blob/master/docs/rules/report-message-format.md) | | | | enforce a consistent format for rule report messages diff --git a/docs/rules/no-missing-message-ids.md b/docs/rules/no-missing-message-ids.md index 76ee3599..268c42b1 100644 --- a/docs/rules/no-missing-message-ids.md +++ b/docs/rules/no-missing-message-ids.md @@ -1,5 +1,7 @@ # Disallow `messageId`s that are missing from `meta.messages` (no-missing-message-ids) +✔️ The `"extends": "plugin:eslint-plugin/recommended"` property in a configuration file enables this rule. + When using `meta.messages` and `messageId` to report rule violations, it's possible to mistakenly use a `messageId` that doesn't exist in `meta.messages`. ## Rule Details diff --git a/docs/rules/no-unused-message-ids.md b/docs/rules/no-unused-message-ids.md index 758140ab..942d33d7 100644 --- a/docs/rules/no-unused-message-ids.md +++ b/docs/rules/no-unused-message-ids.md @@ -1,5 +1,7 @@ # Disallow unused `messageId`s in `meta.messages` (no-unused-message-ids) +✔️ The `"extends": "plugin:eslint-plugin/recommended"` property in a configuration file enables this rule. + When using `meta.messages` and `messageId` to report rule violations, it's possible to mistakenly leave a message in `meta.messages` that is never used. ## Rule Details diff --git a/docs/rules/prefer-message-ids.md b/docs/rules/prefer-message-ids.md index 4455df26..4f1696ce 100644 --- a/docs/rules/prefer-message-ids.md +++ b/docs/rules/prefer-message-ids.md @@ -1,5 +1,7 @@ # Require using `messageId` instead of `message` to report rule violations (prefer-message-ids) +✔️ The `"extends": "plugin:eslint-plugin/recommended"` property in a configuration file enables this rule. + When reporting a rule violation, it's preferred to provide the violation message with the `messageId` property instead of the `message` property. Message IDs provide the following benefits: * Rule violation messages can be stored in a central `meta.messages` object for convenient management diff --git a/docs/rules/prefer-output-null.md b/docs/rules/prefer-output-null.md index 31d6ceb6..e5e0a5de 100644 --- a/docs/rules/prefer-output-null.md +++ b/docs/rules/prefer-output-null.md @@ -1,5 +1,7 @@ # Disallow invalid RuleTester test cases where the `output` matches the `code` (prefer-output-null) +✔️ The `"extends": "plugin:eslint-plugin/recommended"` property in a configuration file enables this rule. + ⚒️ The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#--fix) can automatically fix some of the problems reported by this rule. Instead of repeating the test case `code`, using `output: null` is more concise and makes it easier to distinguish whether a test case provides an autofix. diff --git a/lib/rules/no-missing-message-ids.js b/lib/rules/no-missing-message-ids.js index f10c9507..47cabd78 100644 --- a/lib/rules/no-missing-message-ids.js +++ b/lib/rules/no-missing-message-ids.js @@ -14,7 +14,7 @@ module.exports = { description: 'disallow `messageId`s that are missing from `meta.messages`', category: 'Rules', - recommended: false, + recommended: true, url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/no-missing-message-ids.md', }, fixable: null, diff --git a/lib/rules/no-unused-message-ids.js b/lib/rules/no-unused-message-ids.js index a1724a60..df793605 100644 --- a/lib/rules/no-unused-message-ids.js +++ b/lib/rules/no-unused-message-ids.js @@ -13,7 +13,7 @@ module.exports = { docs: { description: 'disallow unused `messageId`s in `meta.messages`', category: 'Rules', - recommended: false, + recommended: true, url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/no-unused-message-ids.md', }, fixable: null, diff --git a/lib/rules/prefer-message-ids.js b/lib/rules/prefer-message-ids.js index 9fca98a5..8d80860b 100644 --- a/lib/rules/prefer-message-ids.js +++ b/lib/rules/prefer-message-ids.js @@ -15,7 +15,7 @@ module.exports = { description: 'require using `messageId` instead of `message` to report rule violations', category: 'Rules', - recommended: false, + recommended: true, url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/prefer-message-ids.md', }, fixable: null, diff --git a/lib/rules/prefer-output-null.js b/lib/rules/prefer-output-null.js index 87fe877f..0716d91e 100644 --- a/lib/rules/prefer-output-null.js +++ b/lib/rules/prefer-output-null.js @@ -19,7 +19,7 @@ module.exports = { description: 'disallow invalid RuleTester test cases where the `output` matches the `code`', category: 'Tests', - recommended: false, + recommended: true, url: 'https://github.com/not-an-aardvark/eslint-plugin-eslint-plugin/tree/HEAD/docs/rules/prefer-output-null.md', }, fixable: 'code',