`;
+ }
+
+ // See https://github.com/eslint/eslint.org/blob/ac38ab41f99b89a8798d374f74e2cce01171be8b/src/playground/App.js#L44
+ const state = encodeToBase64(
+ JSON.stringify({
+ options: { parserOptions },
+ text: code
+ })
+ );
+ const prefix = process.env.CONTEXT && process.env.CONTEXT !== "deploy-preview"
+ ? ""
+ : "https://eslint.org";
+
+ return `
+
";
+ }
+ });
+
const md = markdownIt({ html: true, linkify: true, typographer: true, highlight: (str, lang) => highlighter(md, str, lang) })
.use(markdownItAnchor, {
slugify: s => slug(s)
})
.use(markdownItContainer, "img-container", {})
- .use(markdownItContainer, "correct", {})
- .use(markdownItContainer, "incorrect", {})
+ .use(markdownItContainer, "rule-example", ruleExampleOptions)
.use(markdownItContainer, "warning", {
render(tokens, idx) {
return generateAlertMarkup("warning", tokens, idx);
@@ -437,25 +481,6 @@ module.exports = function(eleventyConfig) {
// Settings
//------------------------------------------------------------------------------
- /*
- * When we run `eleventy --serve`, Eleventy 1.x uses browser-sync to serve the content.
- * By default, browser-sync (more precisely, underlying serve-static) will not serve
- * `foo/bar.html` when we request `foo/bar`. Thus, we need to rewrite URLs to append `.html`
- * so that pretty links without `.html` can work in a local development environment.
- *
- * There's no need to rewrite URLs that end with `/`, because that already works well
- * (server will return the content of `index.html` in the directory).
- * URLs with a file extension, like main.css, main.js, sitemap.xml, etc. should not be rewritten
- */
- eleventyConfig.setBrowserSyncConfig({
- middleware(req, res, next) {
- if (!/(?:\.[a-zA-Z][^/]*|\/)$/u.test(req.url)) {
- req.url += ".html";
- }
- return next();
- }
- });
-
/*
* Generate the sitemap only in certain contexts to prevent unwanted discovery of sitemaps that
* contain URLs we'd prefer not to appear in search results (URLs in sitemaps are considered important).
@@ -475,14 +500,12 @@ module.exports = function(eleventyConfig) {
eleventyConfig.ignores.add("src/static/sitemap.njk"); // ... then don't generate the sitemap.
}
-
return {
passthroughFileCopy: true,
pathPrefix,
markdownTemplateEngine: "njk",
- dataTemplateEngine: "njk",
htmlTemplateEngine: "njk",
dir: {
diff --git a/docs/README.md b/docs/README.md
index dbf3c02e8f4..026430cc0d2 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -25,21 +25,21 @@ Once the script finishes building the documentation site, you can visit it at
To update the links data file, run this from the root folder (not the `docs` folder):
```shell
-npm run docs:update-links
+npm run build:docs:update-links
```
To lint JS files, run this from the root folder (not the `docs` folder):
```shell
-npm run lint:docsjs
+npm run lint:docs:js
```
To autofix JS files, run this from the root folder (not the `docs` folder):
```shell
-npm run fix:docsjs
+npm run lint:fix:docs:js
```
## License
-© OpenJS Foundation and ESLint contributors, [www.openjsf.org](https://www.openjsf.org/). Content licensed under [Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-nc-sa/4.0/).
+© OpenJS Foundation and ESLint contributors, [www.openjsf.org](https://www.openjsf.org/). Content licensed under [MIT License](https://github.com/eslint/eslint/blob/main/LICENSE).
diff --git a/docs/_examples/custom-rule-tutorial-code/.gitignore b/docs/_examples/custom-rule-tutorial-code/.gitignore
new file mode 100644
index 00000000000..b512c09d476
--- /dev/null
+++ b/docs/_examples/custom-rule-tutorial-code/.gitignore
@@ -0,0 +1 @@
+node_modules
\ No newline at end of file
diff --git a/docs/_examples/custom-rule-tutorial-code/enforce-foo-bar.js b/docs/_examples/custom-rule-tutorial-code/enforce-foo-bar.js
new file mode 100644
index 00000000000..5f3e677f638
--- /dev/null
+++ b/docs/_examples/custom-rule-tutorial-code/enforce-foo-bar.js
@@ -0,0 +1,57 @@
+/**
+ * @fileoverview Rule to enforce that `const foo` is assigned "bar".
+ * @author Ben Perlmutter
+ */
+
+"use strict";
+
+// The enforce-foo-bar rule definition
+module.exports = {
+ meta: {
+ type: "problem",
+ docs: {
+ description: "Enforce that a variable named `foo` can only be assigned a value of 'bar'."
+ },
+ fixable: "code",
+ schema: []
+ },
+ create(context) {
+ return {
+
+ // Performs action in the function on every variable declarator
+ VariableDeclarator(node) {
+
+ // Check if a `const` variable declaration
+ if (node.parent.kind === "const") {
+
+ // Check if variable name is `foo`
+ if (node.id.type === "Identifier" && node.id.name === "foo") {
+
+ // Check if value of variable is "bar"
+ if (node.init && node.init.type === "Literal" && node.init.value !== "bar") {
+
+ /*
+ * Report error to ESLint. Error message uses
+ * a message placeholder to include the incorrect value
+ * in the error message.
+ * Also includes a `fix(fixer)` function that replaces
+ * any values assigned to `const foo` with "bar".
+ */
+ context.report({
+ node,
+ message: 'Value other than "bar" assigned to `const foo`. Unexpected value: {{ notBar }}.',
+ data: {
+ notBar: node.init.value
+ },
+ fix(fixer) {
+ return fixer.replaceText(node.init, '"bar"');
+ }
+ });
+ }
+ }
+ }
+ }
+ };
+ }
+};
+
diff --git a/docs/_examples/custom-rule-tutorial-code/enforce-foo-bar.test.js b/docs/_examples/custom-rule-tutorial-code/enforce-foo-bar.test.js
new file mode 100644
index 00000000000..d5f9c40334d
--- /dev/null
+++ b/docs/_examples/custom-rule-tutorial-code/enforce-foo-bar.test.js
@@ -0,0 +1,34 @@
+/**
+ * @fileoverview Tests for enforce-foo-bar.js rule.
+ * @author Ben Perlmutter
+*/
+"use strict";
+
+const {RuleTester} = require("eslint");
+const fooBarRule = require("./enforce-foo-bar");
+
+const ruleTester = new RuleTester({
+ // Must use at least ecmaVersion 2015 because
+ // that's when `const` variable were introduced.
+ parserOptions: { ecmaVersion: 2015 }
+});
+
+// Throws error if the tests in ruleTester.run() do not pass
+ruleTester.run(
+ "enforce-foo-bar", // rule name
+ fooBarRule, // rule code
+ { // checks
+ // 'valid' checks cases that should pass
+ valid: [{
+ code: "const foo = 'bar';",
+ }],
+ // 'invalid' checks cases that should not pass
+ invalid: [{
+ code: "const foo = 'baz';",
+ output: 'const foo = "bar";',
+ errors: 1,
+ }],
+ }
+);
+
+console.log("All tests passed!");
\ No newline at end of file
diff --git a/docs/_examples/custom-rule-tutorial-code/eslint-plugin-example.js b/docs/_examples/custom-rule-tutorial-code/eslint-plugin-example.js
new file mode 100644
index 00000000000..1a32ca4db0a
--- /dev/null
+++ b/docs/_examples/custom-rule-tutorial-code/eslint-plugin-example.js
@@ -0,0 +1,9 @@
+/**
+ * @fileoverview Example an ESLint plugin with a custom rule.
+ * @author Ben Perlmutter
+*/
+"use strict";
+
+const fooBarRule = require("./enforce-foo-bar");
+const plugin = { rules: { "enforce-foo-bar": fooBarRule } };
+module.exports = plugin;
diff --git a/docs/_examples/custom-rule-tutorial-code/eslint.config.js b/docs/_examples/custom-rule-tutorial-code/eslint.config.js
new file mode 100644
index 00000000000..cf08f1ee57c
--- /dev/null
+++ b/docs/_examples/custom-rule-tutorial-code/eslint.config.js
@@ -0,0 +1,23 @@
+/**
+ * @fileoverview Example ESLint config file that uses the custom rule from this tutorial.
+ * @author Ben Perlmutter
+*/
+"use strict";
+
+// Import the ESLint plugin
+const eslintPluginExample = require("./eslint-plugin-example");
+
+module.exports = [
+ {
+ files: ["**/*.js"],
+ languageOptions: {
+ sourceType: "commonjs",
+ ecmaVersion: "latest",
+ },
+ // Using the eslint-plugin-example plugin defined locally
+ plugins: {"example": eslintPluginExample},
+ rules: {
+ "example/enforce-foo-bar": "error",
+ },
+ }
+]
diff --git a/docs/_examples/custom-rule-tutorial-code/example.js b/docs/_examples/custom-rule-tutorial-code/example.js
new file mode 100644
index 00000000000..0d6da91d49e
--- /dev/null
+++ b/docs/_examples/custom-rule-tutorial-code/example.js
@@ -0,0 +1,22 @@
+/**
+ * @fileoverview Example of a file that will fail the custom rule in this tutorial.
+ * @author Ben Perlmutter
+*/
+"use strict";
+
+/* eslint-disable no-unused-vars -- Disable other rule causing problem for this file */
+
+// To see the error in the terminal, run the following command:
+// npx eslint example.js
+
+// To fix the error, run the following command:
+// npx eslint example.js --fix
+
+function correctFooBar() {
+ const foo = "bar";
+}
+
+function incorrectFoo(){
+ const foo = "baz"; // Problem!
+}
+
diff --git a/docs/_examples/custom-rule-tutorial-code/package.json b/docs/_examples/custom-rule-tutorial-code/package.json
new file mode 100644
index 00000000000..0578c79496c
--- /dev/null
+++ b/docs/_examples/custom-rule-tutorial-code/package.json
@@ -0,0 +1,22 @@
+{
+ "name": "eslint-plugin-example",
+ "version": "1.0.0",
+ "description": "ESLint plugin for enforce-foo-bar rule.",
+ "main": "eslint-plugin-example.js",
+ "keywords": [
+ "eslint",
+ "eslintplugin",
+ "eslint-plugin"
+ ],
+ "peerDependencies": {
+ "eslint": ">=8.0.0"
+ },
+ "scripts": {
+ "test": "node enforce-foo-bar.test.js"
+ },
+ "author": "",
+ "license": "ISC",
+ "devDependencies": {
+ "eslint": "^8.36.0"
+ }
+}
\ No newline at end of file
diff --git a/docs/_examples/integration-tutorial-code/.gitignore b/docs/_examples/integration-tutorial-code/.gitignore
new file mode 100644
index 00000000000..28f1ba7565f
--- /dev/null
+++ b/docs/_examples/integration-tutorial-code/.gitignore
@@ -0,0 +1,2 @@
+node_modules
+.DS_Store
\ No newline at end of file
diff --git a/docs/_examples/integration-tutorial-code/example-eslint-integration.js b/docs/_examples/integration-tutorial-code/example-eslint-integration.js
new file mode 100644
index 00000000000..f36b4e46e76
--- /dev/null
+++ b/docs/_examples/integration-tutorial-code/example-eslint-integration.js
@@ -0,0 +1,62 @@
+/**
+ * @fileoverview An example of how to integrate ESLint into your own tool
+ * @author Ben Perlmutter
+ */
+
+const { ESLint } = require("eslint");
+
+// Create an instance of ESLint with the configuration passed to the function
+function createESLintInstance(overrideConfig){
+ return new ESLint({ useEslintrc: false, overrideConfig: overrideConfig, fix: true });
+}
+
+// Lint the specified files and return the error results
+async function lintAndFix(eslint, filePaths) {
+ const results = await eslint.lintFiles(filePaths);
+
+ // Apply automatic fixes and output fixed code
+ await ESLint.outputFixes(results);
+
+ return results;
+}
+
+// Log results to console if there are any problems
+function outputLintingResults(results) {
+ // Identify the number of problems found
+ const problems = results.reduce((acc, result) => acc + result.errorCount + result.warningCount, 0);
+
+ if (problems > 0) {
+ console.log("Linting errors found!");
+ console.log(results);
+ } else {
+ console.log("No linting errors found.");
+ }
+ return results;
+}
+
+// Put previous functions all together
+async function lintFiles(filePaths) {
+
+ // The ESLint configuration. Alternatively, you could load the configuration
+ // from a .eslintrc file or just use the default config.
+ const overrideConfig = {
+ env: {
+ es6: true,
+ node: true,
+ },
+ parserOptions: {
+ ecmaVersion: 2018,
+ },
+ rules: {
+ "no-console": "error",
+ "no-unused-vars": "warn",
+ },
+ };
+
+ const eslint = createESLintInstance(overrideConfig);
+ const results = await lintAndFix(eslint, filePaths);
+ return outputLintingResults(results);
+}
+
+// Export integration
+module.exports = { lintFiles }
\ No newline at end of file
diff --git a/docs/_examples/integration-tutorial-code/example-eslint-integration.test.js b/docs/_examples/integration-tutorial-code/example-eslint-integration.test.js
new file mode 100644
index 00000000000..5db9aead60a
--- /dev/null
+++ b/docs/_examples/integration-tutorial-code/example-eslint-integration.test.js
@@ -0,0 +1,27 @@
+/**
+ * @fileoverview Test ESLint integration example code
+ * @author Ben Perlmutter
+ */
+
+const { lintFiles } = require("./example-eslint-integration");
+
+async function testExampleEslintIntegration(){
+ const filePaths = ["sample-data/test-file.js"];
+ const lintResults = await lintFiles(filePaths);
+
+ // Test cases
+ if(lintResults[0].messages.length !== 6){
+ throw new Error("Expected 6 linting problems, got " + lintResults[0].messages.length);
+ }
+ const messageRuleIds = new Set()
+ lintResults[0].messages.forEach(msg => messageRuleIds.add(msg.ruleId));
+ if(messageRuleIds.size !== 2){
+ throw new Error("Expected 2 linting rule, got " + messageRuleIds.size);
+ }
+ if(!messageRuleIds.has("no-console")){
+ throw new Error("Expected linting rule 'no-console', got " + messageRuleIds);
+ }
+ console.log("All tests passed!");
+}
+
+testExampleEslintIntegration()
\ No newline at end of file
diff --git a/docs/_examples/integration-tutorial-code/package.json b/docs/_examples/integration-tutorial-code/package.json
new file mode 100644
index 00000000000..df00d7382f1
--- /dev/null
+++ b/docs/_examples/integration-tutorial-code/package.json
@@ -0,0 +1,15 @@
+{
+ "name": "_integration-tutorial-code",
+ "version": "1.0.0",
+ "description": "",
+ "main": "index.js",
+ "scripts": {
+ "test": "node example-eslint-integration.test.js"
+ },
+ "keywords": [],
+ "author": "",
+ "license": "ISC",
+ "dependencies": {
+ "eslint": "^8.39.0"
+ }
+}
diff --git a/docs/_examples/integration-tutorial-code/sample-data/test-file.js b/docs/_examples/integration-tutorial-code/sample-data/test-file.js
new file mode 100644
index 00000000000..425375f8f8a
--- /dev/null
+++ b/docs/_examples/integration-tutorial-code/sample-data/test-file.js
@@ -0,0 +1,29 @@
+/**
+ * @fileoverview Example data to lint using ESLint. This file contains a variety of errors.
+ * @author Ben Perlmutter
+ */
+
+// Unused variable 'y' (no-unused-vars from configured rules)
+const y = 20;
+
+function add(a, b) {
+ // Unexpected console statement (no-console from configured rules)
+ console.log('Adding two numbers');
+ return a + b;
+}
+
+// 'result' is assigned a value but never used (no-unused-vars from configured rules)
+const result = add(x, 5);
+
+if (x > 5) {
+ // Unexpected console statement (no-console from configured rules)
+ console.log('x is greater than 5');
+} else {
+ // Unexpected console statement (no-console from configured rules)
+ console.log('x is not greater than 5');
+}
+
+// 'subtract' is defined but never used (no-unused-vars from configured rules)
+function subtract(a, b) {
+ return a - b;
+}
diff --git a/docs/package.json b/docs/package.json
index 7be17b97436..c79c756bf18 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -1,33 +1,33 @@
{
"name": "docs-eslint",
"private": true,
- "version": "8.41.0",
+ "version": "8.55.0",
"description": "",
"main": "index.js",
"keywords": [],
"author": "",
- "license": "ISC",
+ "license": "MIT",
"files": [],
"scripts": {
- "images": "imagemin '_site/assets/images' --out-dir='_site/assets/images'",
- "watch:postcss": "postcss src/assets/css -d src/assets/css --watch --poll",
- "watch:sass": "sass --watch --poll src/assets/scss:src/assets/css --no-source-map",
- "watch:eleventy": "eleventy --serve --port=2023",
+ "build": "npm-run-all build:sass build:postcss build:website build:minify-images",
"build:postcss": "postcss src/assets/css -d src/assets/css",
+ "build:postcss:watch": "postcss src/assets/css -d src/assets/css --watch --poll",
"build:sass": "sass src/assets/scss:src/assets/css --no-source-map",
- "build:eleventy": "npx @11ty/eleventy",
- "start": "npm-run-all build:sass build:postcss --parallel watch:*",
- "build": "npm-run-all build:sass build:postcss build:eleventy images",
- "lint:scss": "stylelint \"**/*.{scss,html}\"",
+ "build:sass:watch": "sass --watch --poll src/assets/scss:src/assets/css --no-source-map",
+ "build:website": "npx @11ty/eleventy",
+ "build:website:watch": "eleventy --serve --port=2023",
"lint:links": "cross-env NODE_OPTIONS=--max-old-space-size=4096 node tools/validate-links.js",
- "lint:fix:scss": "npm run lint:scss -- --fix"
+ "lint:scss": "stylelint \"**/*.{scss,html}\"",
+ "lint:fix:scss": "npm run lint:scss -- --fix",
+ "build:minify-images": "imagemin '_site/assets/images' --out-dir='_site/assets/images'",
+ "start": "npm-run-all build:sass build:postcss --parallel *:*:watch"
},
"devDependencies": {
- "@11ty/eleventy": "^1.0.1",
- "@11ty/eleventy-img": "^1.0.0",
- "@11ty/eleventy-navigation": "^0.3.2",
+ "@11ty/eleventy": "^2.0.1",
+ "@11ty/eleventy-img": "^3.1.1",
+ "@11ty/eleventy-navigation": "^0.3.5",
"@11ty/eleventy-plugin-rss": "^1.1.1",
- "@11ty/eleventy-plugin-syntaxhighlight": "^3.1.2",
+ "@11ty/eleventy-plugin-syntaxhighlight": "^5.0.0",
"@munter/tap-render": "^0.2.0",
"@types/markdown-it": "^12.2.3",
"algoliasearch": "^4.12.1",
diff --git a/docs/src/_data/further_reading_links.json b/docs/src/_data/further_reading_links.json
index 120dd37032f..a33ce6c0b3b 100644
--- a/docs/src/_data/further_reading_links.json
+++ b/docs/src/_data/further_reading_links.json
@@ -719,5 +719,33 @@
"logo": "https://tc39.es/ecma262/img/favicon.ico",
"title": "ECMAScript® 2023 Language Specification",
"description": null
+ },
+ "https://v8.dev/blog/fast-async": {
+ "domain": "v8.dev",
+ "url": "https://v8.dev/blog/fast-async",
+ "logo": "https://v8.dev/favicon.ico",
+ "title": "Faster async functions and promises · V8",
+ "description": "Faster and easier-to-debug async functions and promises are coming to V8 v7.2 / Chrome 72."
+ },
+ "https://github.com/tc39/proposal-regexp-v-flag": {
+ "domain": "github.com",
+ "url": "https://github.com/tc39/proposal-regexp-v-flag",
+ "logo": "https://github.com/fluidicon.png",
+ "title": "GitHub - tc39/proposal-regexp-v-flag: UTS18 set notation in regular expressions",
+ "description": "UTS18 set notation in regular expressions. Contribute to tc39/proposal-regexp-v-flag development by creating an account on GitHub."
+ },
+ "https://v8.dev/features/regexp-v-flag": {
+ "domain": "v8.dev",
+ "url": "https://v8.dev/features/regexp-v-flag",
+ "logo": "https://v8.dev/favicon.ico",
+ "title": "RegExp v flag with set notation and properties of strings · V8",
+ "description": "The new RegExp `v` flag enables `unicodeSets` mode, unlocking support for extended character classes, including Unicode properties of strings, set notation, and improved case-insensitive matching."
+ },
+ "https://codepoints.net/U+1680": {
+ "domain": "codepoints.net",
+ "url": "https://codepoints.net/U+1680",
+ "logo": "https://codepoints.net/favicon.ico",
+ "title": "U+1680 OGHAM SPACE MARK: – Unicode – Codepoints",
+ "description": " , codepoint U+1680 OGHAM SPACE MARK in Unicode, is located in the block “Ogham”. It belongs to the Ogham script and is a Space Separator."
}
}
\ No newline at end of file
diff --git a/docs/src/_data/rule_versions.json b/docs/src/_data/rule_versions.json
index 3e0b0ad761d..14e6d858ac0 100644
--- a/docs/src/_data/rule_versions.json
+++ b/docs/src/_data/rule_versions.json
@@ -307,7 +307,8 @@
"yoda": "0.7.1",
"logical-assignment-operators": "8.24.0",
"no-empty-static-block": "8.27.0",
- "no-new-native-nonconstructor": "8.27.0"
+ "no-new-native-nonconstructor": "8.27.0",
+ "no-object-constructor": "8.50.0"
},
"removed": {
"generator-star": "1.0.0-rc-1",
diff --git a/docs/src/_data/rules.json b/docs/src/_data/rules.json
index 45caaa9f031..3fe9ddcc3d5 100644
--- a/docs/src/_data/rules.json
+++ b/docs/src/_data/rules.json
@@ -1,2126 +1,2089 @@
{
- "types": [
- {
- "name": "problem",
- "displayName": "Possible Problems",
- "description": "These rules relate to possible logic errors in code:",
- "rules": [
- {
- "name": "array-callback-return",
- "description": "Enforce `return` statements in callbacks of array methods",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "constructor-super",
- "description": "Require `super()` calls in constructors",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "for-direction",
- "description": "Enforce \"for\" loop update clause moving the counter in the right direction",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "getter-return",
- "description": "Enforce `return` statements in getters",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-async-promise-executor",
- "description": "Disallow using an async function as a Promise executor",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-await-in-loop",
- "description": "Disallow `await` inside of loops",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-class-assign",
- "description": "Disallow reassigning class members",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-compare-neg-zero",
- "description": "Disallow comparing against -0",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-cond-assign",
- "description": "Disallow assignment operators in conditional expressions",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-const-assign",
- "description": "Disallow reassigning `const` variables",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-constant-binary-expression",
- "description": "Disallow expressions where the operation doesn't affect the value",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-constant-condition",
- "description": "Disallow constant expressions in conditions",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-constructor-return",
- "description": "Disallow returning value from constructor",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-control-regex",
- "description": "Disallow control characters in regular expressions",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-debugger",
- "description": "Disallow the use of `debugger`",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-dupe-args",
- "description": "Disallow duplicate arguments in `function` definitions",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-dupe-class-members",
- "description": "Disallow duplicate class members",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-dupe-else-if",
- "description": "Disallow duplicate conditions in if-else-if chains",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-dupe-keys",
- "description": "Disallow duplicate keys in object literals",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-duplicate-case",
- "description": "Disallow duplicate case labels",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-duplicate-imports",
- "description": "Disallow duplicate module imports",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-empty-character-class",
- "description": "Disallow empty character classes in regular expressions",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-empty-pattern",
- "description": "Disallow empty destructuring patterns",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-ex-assign",
- "description": "Disallow reassigning exceptions in `catch` clauses",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-fallthrough",
- "description": "Disallow fallthrough of `case` statements",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-func-assign",
- "description": "Disallow reassigning `function` declarations",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-import-assign",
- "description": "Disallow assigning to imported bindings",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-inner-declarations",
- "description": "Disallow variable or `function` declarations in nested blocks",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-invalid-regexp",
- "description": "Disallow invalid regular expression strings in `RegExp` constructors",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-irregular-whitespace",
- "description": "Disallow irregular whitespace",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-loss-of-precision",
- "description": "Disallow literal numbers that lose precision",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-misleading-character-class",
- "description": "Disallow characters which are made with multiple code points in character class syntax",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": true
- },
- {
- "name": "no-new-native-nonconstructor",
- "description": "Disallow `new` operators with global non-constructor functions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-new-symbol",
- "description": "Disallow `new` operators with the `Symbol` object",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-obj-calls",
- "description": "Disallow calling global object properties as functions",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-promise-executor-return",
- "description": "Disallow returning values from Promise executor functions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-prototype-builtins",
- "description": "Disallow calling some `Object.prototype` methods directly on objects",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-self-assign",
- "description": "Disallow assignments where both sides are exactly the same",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-self-compare",
- "description": "Disallow comparisons where both sides are exactly the same",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-setter-return",
- "description": "Disallow returning values from setters",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-sparse-arrays",
- "description": "Disallow sparse arrays",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-template-curly-in-string",
- "description": "Disallow template literal placeholder syntax in regular strings",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-this-before-super",
- "description": "Disallow `this`/`super` before calling `super()` in constructors",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-undef",
- "description": "Disallow the use of undeclared variables unless mentioned in `/*global */` comments",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-unexpected-multiline",
- "description": "Disallow confusing multiline expressions",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-unmodified-loop-condition",
- "description": "Disallow unmodified loop conditions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-unreachable",
- "description": "Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-unreachable-loop",
- "description": "Disallow loops with a body that allows only one iteration",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-unsafe-finally",
- "description": "Disallow control flow statements in `finally` blocks",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-unsafe-negation",
- "description": "Disallow negating the left operand of relational operators",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": true
- },
- {
- "name": "no-unsafe-optional-chaining",
- "description": "Disallow use of optional chaining in contexts where the `undefined` value is not allowed",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-unused-private-class-members",
- "description": "Disallow unused private class members",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-unused-vars",
- "description": "Disallow unused variables",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-use-before-define",
- "description": "Disallow the use of variables before they are defined",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-useless-backreference",
- "description": "Disallow useless backreferences in regular expressions",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "require-atomic-updates",
- "description": "Disallow assignments that can lead to race conditions due to usage of `await` or `yield`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "use-isnan",
- "description": "Require calls to `isNaN()` when checking for `NaN`",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "valid-typeof",
- "description": "Enforce comparing `typeof` expressions against valid strings",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": true
- }
- ]
- },
- {
- "name": "suggestion",
- "displayName": "Suggestions",
- "description": "These rules suggest alternate ways of doing things:",
- "rules": [
- {
- "name": "accessor-pairs",
- "description": "Enforce getter and setter pairs in objects and classes",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "arrow-body-style",
- "description": "Require braces around arrow function bodies",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "block-scoped-var",
- "description": "Enforce the use of variables within the scope they are defined",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "camelcase",
- "description": "Enforce camelcase naming convention",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "capitalized-comments",
- "description": "Enforce or disallow capitalization of the first letter of a comment",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "class-methods-use-this",
- "description": "Enforce that class methods utilize `this`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "complexity",
- "description": "Enforce a maximum cyclomatic complexity allowed in a program",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "consistent-return",
- "description": "Require `return` statements to either always or never specify values",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "consistent-this",
- "description": "Enforce consistent naming when capturing the current execution context",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "curly",
- "description": "Enforce consistent brace style for all control statements",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "default-case",
- "description": "Require `default` cases in `switch` statements",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "default-case-last",
- "description": "Enforce default clauses in switch statements to be last",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "default-param-last",
- "description": "Enforce default parameters to be last",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "dot-notation",
- "description": "Enforce dot notation whenever possible",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "eqeqeq",
- "description": "Require the use of `===` and `!==`",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "func-name-matching",
- "description": "Require function names to match the name of the variable or property to which they are assigned",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "func-names",
- "description": "Require or disallow named `function` expressions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "func-style",
- "description": "Enforce the consistent use of either `function` declarations or expressions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "grouped-accessor-pairs",
- "description": "Require grouped accessor pairs in object literals and classes",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "guard-for-in",
- "description": "Require `for-in` loops to include an `if` statement",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "id-denylist",
- "description": "Disallow specified identifiers",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "id-length",
- "description": "Enforce minimum and maximum identifier lengths",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "id-match",
- "description": "Require identifiers to match a specified regular expression",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "init-declarations",
- "description": "Require or disallow initialization in variable declarations",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "logical-assignment-operators",
- "description": "Require or disallow logical assignment operator shorthand",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": true
- },
- {
- "name": "max-classes-per-file",
- "description": "Enforce a maximum number of classes per file",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "max-depth",
- "description": "Enforce a maximum depth that blocks can be nested",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "max-lines",
- "description": "Enforce a maximum number of lines per file",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "max-lines-per-function",
- "description": "Enforce a maximum number of lines of code in a function",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "max-nested-callbacks",
- "description": "Enforce a maximum depth that callbacks can be nested",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "max-params",
- "description": "Enforce a maximum number of parameters in function definitions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "max-statements",
- "description": "Enforce a maximum number of statements allowed in function blocks",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "multiline-comment-style",
- "description": "Enforce a particular style for multiline comments",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "new-cap",
- "description": "Require constructor names to begin with a capital letter",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-alert",
- "description": "Disallow the use of `alert`, `confirm`, and `prompt`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-array-constructor",
- "description": "Disallow `Array` constructors",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-bitwise",
- "description": "Disallow bitwise operators",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-caller",
- "description": "Disallow the use of `arguments.caller` or `arguments.callee`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-case-declarations",
- "description": "Disallow lexical declarations in case clauses",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-confusing-arrow",
- "description": "Disallow arrow functions where they could be confused with comparisons",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-console",
- "description": "Disallow the use of `console`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-continue",
- "description": "Disallow `continue` statements",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-delete-var",
- "description": "Disallow deleting variables",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-div-regex",
- "description": "Disallow equal signs explicitly at the beginning of regular expressions",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-else-return",
- "description": "Disallow `else` blocks after `return` statements in `if` statements",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-empty",
- "description": "Disallow empty block statements",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": true
- },
- {
- "name": "no-empty-function",
- "description": "Disallow empty functions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-empty-static-block",
- "description": "Disallow empty static blocks",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-eq-null",
- "description": "Disallow `null` comparisons without type-checking operators",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-eval",
- "description": "Disallow the use of `eval()`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-extend-native",
- "description": "Disallow extending native types",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-extra-bind",
- "description": "Disallow unnecessary calls to `.bind()`",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-extra-boolean-cast",
- "description": "Disallow unnecessary boolean casts",
- "recommended": true,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-extra-label",
- "description": "Disallow unnecessary labels",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-extra-semi",
- "description": "Disallow unnecessary semicolons",
- "recommended": true,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-floating-decimal",
- "description": "Disallow leading or trailing decimal points in numeric literals",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-global-assign",
- "description": "Disallow assignments to native objects or read-only global variables",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-implicit-coercion",
- "description": "Disallow shorthand type conversions",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-implicit-globals",
- "description": "Disallow declarations in the global scope",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-implied-eval",
- "description": "Disallow the use of `eval()`-like methods",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-inline-comments",
- "description": "Disallow inline comments after code",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-invalid-this",
- "description": "Disallow use of `this` in contexts where the value of `this` is `undefined`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-iterator",
- "description": "Disallow the use of the `__iterator__` property",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-label-var",
- "description": "Disallow labels that share a name with a variable",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-labels",
- "description": "Disallow labeled statements",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-lone-blocks",
- "description": "Disallow unnecessary nested blocks",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-lonely-if",
- "description": "Disallow `if` statements as the only statement in `else` blocks",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-loop-func",
- "description": "Disallow function declarations that contain unsafe references inside loop statements",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-magic-numbers",
- "description": "Disallow magic numbers",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-mixed-operators",
- "description": "Disallow mixed binary operators",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-multi-assign",
- "description": "Disallow use of chained assignment expressions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-multi-str",
- "description": "Disallow multiline strings",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-negated-condition",
- "description": "Disallow negated conditions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-nested-ternary",
- "description": "Disallow nested ternary expressions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-new",
- "description": "Disallow `new` operators outside of assignments or comparisons",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-new-func",
- "description": "Disallow `new` operators with the `Function` object",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-new-object",
- "description": "Disallow `Object` constructors",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-new-wrappers",
- "description": "Disallow `new` operators with the `String`, `Number`, and `Boolean` objects",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-nonoctal-decimal-escape",
- "description": "Disallow `\\8` and `\\9` escape sequences in string literals",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": true
- },
- {
- "name": "no-octal",
- "description": "Disallow octal literals",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-octal-escape",
- "description": "Disallow octal escape sequences in string literals",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-param-reassign",
- "description": "Disallow reassigning `function` parameters",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-plusplus",
- "description": "Disallow the unary operators `++` and `--`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-proto",
- "description": "Disallow the use of the `__proto__` property",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-redeclare",
- "description": "Disallow variable redeclaration",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-regex-spaces",
- "description": "Disallow multiple spaces in regular expressions",
- "recommended": true,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-restricted-exports",
- "description": "Disallow specified names in exports",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-restricted-globals",
- "description": "Disallow specified global variables",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-restricted-imports",
- "description": "Disallow specified modules when loaded by `import`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-restricted-properties",
- "description": "Disallow certain properties on certain objects",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-restricted-syntax",
- "description": "Disallow specified syntax",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-return-assign",
- "description": "Disallow assignment operators in `return` statements",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-return-await",
- "description": "Disallow unnecessary `return await`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": true
- },
- {
- "name": "no-script-url",
- "description": "Disallow `javascript:` urls",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-sequences",
- "description": "Disallow comma operators",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-shadow",
- "description": "Disallow variable declarations from shadowing variables declared in the outer scope",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-shadow-restricted-names",
- "description": "Disallow identifiers from shadowing restricted names",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-ternary",
- "description": "Disallow ternary operators",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-throw-literal",
- "description": "Disallow throwing literals as exceptions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-undef-init",
- "description": "Disallow initializing variables to `undefined`",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-undefined",
- "description": "Disallow the use of `undefined` as an identifier",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-underscore-dangle",
- "description": "Disallow dangling underscores in identifiers",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-unneeded-ternary",
- "description": "Disallow ternary operators when simpler alternatives exist",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-unused-expressions",
- "description": "Disallow unused expressions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-unused-labels",
- "description": "Disallow unused labels",
- "recommended": true,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-useless-call",
- "description": "Disallow unnecessary calls to `.call()` and `.apply()`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-useless-catch",
- "description": "Disallow unnecessary `catch` clauses",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-useless-computed-key",
- "description": "Disallow unnecessary computed property keys in objects and classes",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-useless-concat",
- "description": "Disallow unnecessary concatenation of literals or template literals",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-useless-constructor",
- "description": "Disallow unnecessary constructors",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-useless-escape",
- "description": "Disallow unnecessary escape characters",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": true
- },
- {
- "name": "no-useless-rename",
- "description": "Disallow renaming import, export, and destructured assignments to the same name",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-useless-return",
- "description": "Disallow redundant return statements",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-var",
- "description": "Require `let` or `const` instead of `var`",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-void",
- "description": "Disallow `void` operators",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-warning-comments",
- "description": "Disallow specified warning terms in comments",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-with",
- "description": "Disallow `with` statements",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "object-shorthand",
- "description": "Require or disallow method and property shorthand syntax for object literals",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "one-var",
- "description": "Enforce variables to be declared either together or separately in functions",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "one-var-declaration-per-line",
- "description": "Require or disallow newlines around variable declarations",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "operator-assignment",
- "description": "Require or disallow assignment operator shorthand where possible",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "prefer-arrow-callback",
- "description": "Require using arrow functions for callbacks",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "prefer-const",
- "description": "Require `const` declarations for variables that are never reassigned after declared",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "prefer-destructuring",
- "description": "Require destructuring from arrays and/or objects",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "prefer-exponentiation-operator",
- "description": "Disallow the use of `Math.pow` in favor of the `**` operator",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "prefer-named-capture-group",
- "description": "Enforce using named capture group in regular expression",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": true
- },
- {
- "name": "prefer-numeric-literals",
- "description": "Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "prefer-object-has-own",
- "description": "Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()`",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "prefer-object-spread",
- "description": "Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "prefer-promise-reject-errors",
- "description": "Require using Error objects as Promise rejection reasons",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "prefer-regex-literals",
- "description": "Disallow use of the `RegExp` constructor in favor of regular expression literals",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": true
- },
- {
- "name": "prefer-rest-params",
- "description": "Require rest parameters instead of `arguments`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "prefer-spread",
- "description": "Require spread operators instead of `.apply()`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "prefer-template",
- "description": "Require template literals instead of string concatenation",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "quote-props",
- "description": "Require quotes around object literal property names",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "radix",
- "description": "Enforce the consistent use of the radix argument when using `parseInt()`",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": true
- },
- {
- "name": "require-await",
- "description": "Disallow async functions which have no `await` expression",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "require-unicode-regexp",
- "description": "Enforce the use of `u` flag on RegExp",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": true
- },
- {
- "name": "require-yield",
- "description": "Require generator functions to contain `yield`",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "sort-imports",
- "description": "Enforce sorted import declarations within modules",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "sort-keys",
- "description": "Require object keys to be sorted",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "sort-vars",
- "description": "Require variables within the same declaration block to be sorted",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "spaced-comment",
- "description": "Enforce consistent spacing after the `//` or `/*` in a comment",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "strict",
- "description": "Require or disallow strict mode directives",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "symbol-description",
- "description": "Require symbol descriptions",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "vars-on-top",
- "description": "Require `var` declarations be placed at the top of their containing scope",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "yoda",
- "description": "Require or disallow \"Yoda\" conditions",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- }
- ]
- },
- {
- "name": "layout",
- "displayName": "Layout & Formatting",
- "description": "These rules care about how the code looks rather than how it executes:",
- "rules": [
- {
- "name": "array-bracket-newline",
- "description": "Enforce linebreaks after opening and before closing array brackets",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "array-bracket-spacing",
- "description": "Enforce consistent spacing inside array brackets",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "array-element-newline",
- "description": "Enforce line breaks after each array element",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "arrow-parens",
- "description": "Require parentheses around arrow function arguments",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "arrow-spacing",
- "description": "Enforce consistent spacing before and after the arrow in arrow functions",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "block-spacing",
- "description": "Disallow or enforce spaces inside of blocks after opening block and before closing block",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "brace-style",
- "description": "Enforce consistent brace style for blocks",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "comma-dangle",
- "description": "Require or disallow trailing commas",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "comma-spacing",
- "description": "Enforce consistent spacing before and after commas",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "comma-style",
- "description": "Enforce consistent comma style",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "computed-property-spacing",
- "description": "Enforce consistent spacing inside computed property brackets",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "dot-location",
- "description": "Enforce consistent newlines before and after dots",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "eol-last",
- "description": "Require or disallow newline at the end of files",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "func-call-spacing",
- "description": "Require or disallow spacing between function identifiers and their invocations",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "function-call-argument-newline",
- "description": "Enforce line breaks between arguments of a function call",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "function-paren-newline",
- "description": "Enforce consistent line breaks inside function parentheses",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "generator-star-spacing",
- "description": "Enforce consistent spacing around `*` operators in generator functions",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "implicit-arrow-linebreak",
- "description": "Enforce the location of arrow function bodies",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "indent",
- "description": "Enforce consistent indentation",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "jsx-quotes",
- "description": "Enforce the consistent use of either double or single quotes in JSX attributes",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "key-spacing",
- "description": "Enforce consistent spacing between keys and values in object literal properties",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "keyword-spacing",
- "description": "Enforce consistent spacing before and after keywords",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "line-comment-position",
- "description": "Enforce position of line comments",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "linebreak-style",
- "description": "Enforce consistent linebreak style",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "lines-around-comment",
- "description": "Require empty lines around comments",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "lines-between-class-members",
- "description": "Require or disallow an empty line between class members",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "max-len",
- "description": "Enforce a maximum line length",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "max-statements-per-line",
- "description": "Enforce a maximum number of statements allowed per line",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "multiline-ternary",
- "description": "Enforce newlines between operands of ternary expressions",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "new-parens",
- "description": "Enforce or disallow parentheses when invoking a constructor with no arguments",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "newline-per-chained-call",
- "description": "Require a newline after each call in a method chain",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-extra-parens",
- "description": "Disallow unnecessary parentheses",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-mixed-spaces-and-tabs",
- "description": "Disallow mixed spaces and tabs for indentation",
- "recommended": true,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-multi-spaces",
- "description": "Disallow multiple spaces",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-multiple-empty-lines",
- "description": "Disallow multiple empty lines",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-tabs",
- "description": "Disallow all tabs",
- "recommended": false,
- "fixable": false,
- "hasSuggestions": false
- },
- {
- "name": "no-trailing-spaces",
- "description": "Disallow trailing whitespace at the end of lines",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "no-whitespace-before-property",
- "description": "Disallow whitespace before properties",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "nonblock-statement-body-position",
- "description": "Enforce the location of single-line statements",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "object-curly-newline",
- "description": "Enforce consistent line breaks after opening and before closing braces",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "object-curly-spacing",
- "description": "Enforce consistent spacing inside braces",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "object-property-newline",
- "description": "Enforce placing object properties on separate lines",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "operator-linebreak",
- "description": "Enforce consistent linebreak style for operators",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "padded-blocks",
- "description": "Require or disallow padding within blocks",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "padding-line-between-statements",
- "description": "Require or disallow padding lines between statements",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "quotes",
- "description": "Enforce the consistent use of either backticks, double, or single quotes",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "rest-spread-spacing",
- "description": "Enforce spacing between rest and spread operators and their expressions",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "semi",
- "description": "Require or disallow semicolons instead of ASI",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "semi-spacing",
- "description": "Enforce consistent spacing before and after semicolons",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "semi-style",
- "description": "Enforce location of semicolons",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "space-before-blocks",
- "description": "Enforce consistent spacing before blocks",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "space-before-function-paren",
- "description": "Enforce consistent spacing before `function` definition opening parenthesis",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "space-in-parens",
- "description": "Enforce consistent spacing inside parentheses",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "space-infix-ops",
- "description": "Require spacing around infix operators",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "space-unary-ops",
- "description": "Enforce consistent spacing before or after unary operators",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "switch-colon-spacing",
- "description": "Enforce spacing around colons of switch statements",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "template-curly-spacing",
- "description": "Require or disallow spacing around embedded expressions of template strings",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "template-tag-spacing",
- "description": "Require or disallow spacing between template tags and their literals",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "unicode-bom",
- "description": "Require or disallow Unicode byte order mark (BOM)",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "wrap-iife",
- "description": "Require parentheses around immediate `function` invocations",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "wrap-regex",
- "description": "Require parenthesis around regex literals",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- },
- {
- "name": "yield-star-spacing",
- "description": "Require or disallow spacing around the `*` in `yield*` expressions",
- "recommended": false,
- "fixable": true,
- "hasSuggestions": false
- }
- ]
- }
- ],
- "deprecated": {
- "name": "Deprecated",
- "description": "These rules have been deprecated in accordance with the
deprecation policy, and replaced by newer rules:",
- "rules": [
+ "types": {
+ "problem": [
+ {
+ "name": "array-callback-return",
+ "description": "Enforce `return` statements in callbacks of array methods",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": true
+ },
+ {
+ "name": "constructor-super",
+ "description": "Require `super()` calls in constructors",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "for-direction",
+ "description": "Enforce \"for\" loop update clause moving the counter in the right direction",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "getter-return",
+ "description": "Enforce `return` statements in getters",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-async-promise-executor",
+ "description": "Disallow using an async function as a Promise executor",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-await-in-loop",
+ "description": "Disallow `await` inside of loops",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-class-assign",
+ "description": "Disallow reassigning class members",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-compare-neg-zero",
+ "description": "Disallow comparing against -0",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-cond-assign",
+ "description": "Disallow assignment operators in conditional expressions",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-const-assign",
+ "description": "Disallow reassigning `const` variables",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-constant-binary-expression",
+ "description": "Disallow expressions where the operation doesn't affect the value",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-constant-condition",
+ "description": "Disallow constant expressions in conditions",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-constructor-return",
+ "description": "Disallow returning value from constructor",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-control-regex",
+ "description": "Disallow control characters in regular expressions",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-debugger",
+ "description": "Disallow the use of `debugger`",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-dupe-args",
+ "description": "Disallow duplicate arguments in `function` definitions",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-dupe-class-members",
+ "description": "Disallow duplicate class members",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-dupe-else-if",
+ "description": "Disallow duplicate conditions in if-else-if chains",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-dupe-keys",
+ "description": "Disallow duplicate keys in object literals",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-duplicate-case",
+ "description": "Disallow duplicate case labels",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-duplicate-imports",
+ "description": "Disallow duplicate module imports",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-empty-character-class",
+ "description": "Disallow empty character classes in regular expressions",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-empty-pattern",
+ "description": "Disallow empty destructuring patterns",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-ex-assign",
+ "description": "Disallow reassigning exceptions in `catch` clauses",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-fallthrough",
+ "description": "Disallow fallthrough of `case` statements",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-func-assign",
+ "description": "Disallow reassigning `function` declarations",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-import-assign",
+ "description": "Disallow assigning to imported bindings",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-inner-declarations",
+ "description": "Disallow variable or `function` declarations in nested blocks",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-invalid-regexp",
+ "description": "Disallow invalid regular expression strings in `RegExp` constructors",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-irregular-whitespace",
+ "description": "Disallow irregular whitespace",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-loss-of-precision",
+ "description": "Disallow literal numbers that lose precision",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-misleading-character-class",
+ "description": "Disallow characters which are made with multiple code points in character class syntax",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": true
+ },
+ {
+ "name": "no-new-native-nonconstructor",
+ "description": "Disallow `new` operators with global non-constructor functions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-new-symbol",
+ "description": "Disallow `new` operators with the `Symbol` object",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-obj-calls",
+ "description": "Disallow calling global object properties as functions",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-promise-executor-return",
+ "description": "Disallow returning values from Promise executor functions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": true
+ },
+ {
+ "name": "no-prototype-builtins",
+ "description": "Disallow calling some `Object.prototype` methods directly on objects",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": true
+ },
+ {
+ "name": "no-self-assign",
+ "description": "Disallow assignments where both sides are exactly the same",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-self-compare",
+ "description": "Disallow comparisons where both sides are exactly the same",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-setter-return",
+ "description": "Disallow returning values from setters",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-sparse-arrays",
+ "description": "Disallow sparse arrays",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-template-curly-in-string",
+ "description": "Disallow template literal placeholder syntax in regular strings",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-this-before-super",
+ "description": "Disallow `this`/`super` before calling `super()` in constructors",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-undef",
+ "description": "Disallow the use of undeclared variables unless mentioned in `/*global */` comments",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-unexpected-multiline",
+ "description": "Disallow confusing multiline expressions",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-unmodified-loop-condition",
+ "description": "Disallow unmodified loop conditions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-unreachable",
+ "description": "Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-unreachable-loop",
+ "description": "Disallow loops with a body that allows only one iteration",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-unsafe-finally",
+ "description": "Disallow control flow statements in `finally` blocks",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-unsafe-negation",
+ "description": "Disallow negating the left operand of relational operators",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": true
+ },
+ {
+ "name": "no-unsafe-optional-chaining",
+ "description": "Disallow use of optional chaining in contexts where the `undefined` value is not allowed",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-unused-private-class-members",
+ "description": "Disallow unused private class members",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-unused-vars",
+ "description": "Disallow unused variables",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-use-before-define",
+ "description": "Disallow the use of variables before they are defined",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-useless-backreference",
+ "description": "Disallow useless backreferences in regular expressions",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "require-atomic-updates",
+ "description": "Disallow assignments that can lead to race conditions due to usage of `await` or `yield`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "use-isnan",
+ "description": "Require calls to `isNaN()` when checking for `NaN`",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "valid-typeof",
+ "description": "Enforce comparing `typeof` expressions against valid strings",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": true
+ }
+ ],
+ "suggestion": [
+ {
+ "name": "accessor-pairs",
+ "description": "Enforce getter and setter pairs in objects and classes",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "arrow-body-style",
+ "description": "Require braces around arrow function bodies",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "block-scoped-var",
+ "description": "Enforce the use of variables within the scope they are defined",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "camelcase",
+ "description": "Enforce camelcase naming convention",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "capitalized-comments",
+ "description": "Enforce or disallow capitalization of the first letter of a comment",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "class-methods-use-this",
+ "description": "Enforce that class methods utilize `this`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "complexity",
+ "description": "Enforce a maximum cyclomatic complexity allowed in a program",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "consistent-return",
+ "description": "Require `return` statements to either always or never specify values",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "consistent-this",
+ "description": "Enforce consistent naming when capturing the current execution context",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "curly",
+ "description": "Enforce consistent brace style for all control statements",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "default-case",
+ "description": "Require `default` cases in `switch` statements",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "default-case-last",
+ "description": "Enforce default clauses in switch statements to be last",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "default-param-last",
+ "description": "Enforce default parameters to be last",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "dot-notation",
+ "description": "Enforce dot notation whenever possible",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "eqeqeq",
+ "description": "Require the use of `===` and `!==`",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "func-name-matching",
+ "description": "Require function names to match the name of the variable or property to which they are assigned",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "func-names",
+ "description": "Require or disallow named `function` expressions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "func-style",
+ "description": "Enforce the consistent use of either `function` declarations or expressions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "grouped-accessor-pairs",
+ "description": "Require grouped accessor pairs in object literals and classes",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "guard-for-in",
+ "description": "Require `for-in` loops to include an `if` statement",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "id-denylist",
+ "description": "Disallow specified identifiers",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "id-length",
+ "description": "Enforce minimum and maximum identifier lengths",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "id-match",
+ "description": "Require identifiers to match a specified regular expression",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "init-declarations",
+ "description": "Require or disallow initialization in variable declarations",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "logical-assignment-operators",
+ "description": "Require or disallow logical assignment operator shorthand",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": true
+ },
+ {
+ "name": "max-classes-per-file",
+ "description": "Enforce a maximum number of classes per file",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "max-depth",
+ "description": "Enforce a maximum depth that blocks can be nested",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "max-lines",
+ "description": "Enforce a maximum number of lines per file",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "max-lines-per-function",
+ "description": "Enforce a maximum number of lines of code in a function",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "max-nested-callbacks",
+ "description": "Enforce a maximum depth that callbacks can be nested",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "max-params",
+ "description": "Enforce a maximum number of parameters in function definitions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "max-statements",
+ "description": "Enforce a maximum number of statements allowed in function blocks",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "multiline-comment-style",
+ "description": "Enforce a particular style for multiline comments",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "new-cap",
+ "description": "Require constructor names to begin with a capital letter",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-alert",
+ "description": "Disallow the use of `alert`, `confirm`, and `prompt`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-array-constructor",
+ "description": "Disallow `Array` constructors",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": true
+ },
+ {
+ "name": "no-bitwise",
+ "description": "Disallow bitwise operators",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-caller",
+ "description": "Disallow the use of `arguments.caller` or `arguments.callee`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-case-declarations",
+ "description": "Disallow lexical declarations in case clauses",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-console",
+ "description": "Disallow the use of `console`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": true
+ },
+ {
+ "name": "no-continue",
+ "description": "Disallow `continue` statements",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-delete-var",
+ "description": "Disallow deleting variables",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-div-regex",
+ "description": "Disallow equal signs explicitly at the beginning of regular expressions",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-else-return",
+ "description": "Disallow `else` blocks after `return` statements in `if` statements",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-empty",
+ "description": "Disallow empty block statements",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": true
+ },
+ {
+ "name": "no-empty-function",
+ "description": "Disallow empty functions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-empty-static-block",
+ "description": "Disallow empty static blocks",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-eq-null",
+ "description": "Disallow `null` comparisons without type-checking operators",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-eval",
+ "description": "Disallow the use of `eval()`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-extend-native",
+ "description": "Disallow extending native types",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-extra-bind",
+ "description": "Disallow unnecessary calls to `.bind()`",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-extra-boolean-cast",
+ "description": "Disallow unnecessary boolean casts",
+ "recommended": true,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-extra-label",
+ "description": "Disallow unnecessary labels",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-global-assign",
+ "description": "Disallow assignments to native objects or read-only global variables",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-implicit-coercion",
+ "description": "Disallow shorthand type conversions",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-implicit-globals",
+ "description": "Disallow declarations in the global scope",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-implied-eval",
+ "description": "Disallow the use of `eval()`-like methods",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-inline-comments",
+ "description": "Disallow inline comments after code",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-invalid-this",
+ "description": "Disallow use of `this` in contexts where the value of `this` is `undefined`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-iterator",
+ "description": "Disallow the use of the `__iterator__` property",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-label-var",
+ "description": "Disallow labels that share a name with a variable",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-labels",
+ "description": "Disallow labeled statements",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-lone-blocks",
+ "description": "Disallow unnecessary nested blocks",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-lonely-if",
+ "description": "Disallow `if` statements as the only statement in `else` blocks",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-loop-func",
+ "description": "Disallow function declarations that contain unsafe references inside loop statements",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-magic-numbers",
+ "description": "Disallow magic numbers",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-multi-assign",
+ "description": "Disallow use of chained assignment expressions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-multi-str",
+ "description": "Disallow multiline strings",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-negated-condition",
+ "description": "Disallow negated conditions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-nested-ternary",
+ "description": "Disallow nested ternary expressions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-new",
+ "description": "Disallow `new` operators outside of assignments or comparisons",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-new-func",
+ "description": "Disallow `new` operators with the `Function` object",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-new-wrappers",
+ "description": "Disallow `new` operators with the `String`, `Number`, and `Boolean` objects",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-nonoctal-decimal-escape",
+ "description": "Disallow `\\8` and `\\9` escape sequences in string literals",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": true
+ },
+ {
+ "name": "no-object-constructor",
+ "description": "Disallow calls to the `Object` constructor without an argument",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": true
+ },
+ {
+ "name": "no-octal",
+ "description": "Disallow octal literals",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-octal-escape",
+ "description": "Disallow octal escape sequences in string literals",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-param-reassign",
+ "description": "Disallow reassigning `function` parameters",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-plusplus",
+ "description": "Disallow the unary operators `++` and `--`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-proto",
+ "description": "Disallow the use of the `__proto__` property",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-redeclare",
+ "description": "Disallow variable redeclaration",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-regex-spaces",
+ "description": "Disallow multiple spaces in regular expressions",
+ "recommended": true,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-restricted-exports",
+ "description": "Disallow specified names in exports",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-restricted-globals",
+ "description": "Disallow specified global variables",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-restricted-imports",
+ "description": "Disallow specified modules when loaded by `import`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-restricted-properties",
+ "description": "Disallow certain properties on certain objects",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-restricted-syntax",
+ "description": "Disallow specified syntax",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-return-assign",
+ "description": "Disallow assignment operators in `return` statements",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-script-url",
+ "description": "Disallow `javascript:` urls",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-sequences",
+ "description": "Disallow comma operators",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-shadow",
+ "description": "Disallow variable declarations from shadowing variables declared in the outer scope",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-shadow-restricted-names",
+ "description": "Disallow identifiers from shadowing restricted names",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-ternary",
+ "description": "Disallow ternary operators",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-throw-literal",
+ "description": "Disallow throwing literals as exceptions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
{
- "name": "callback-return",
- "replacedBy": []
+ "name": "no-undef-init",
+ "description": "Disallow initializing variables to `undefined`",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "name": "global-require",
- "replacedBy": []
+ "name": "no-undefined",
+ "description": "Disallow the use of `undefined` as an identifier",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "name": "handle-callback-err",
- "replacedBy": []
+ "name": "no-underscore-dangle",
+ "description": "Disallow dangling underscores in identifiers",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "name": "id-blacklist",
- "replacedBy": [
- "id-denylist"
- ]
+ "name": "no-unneeded-ternary",
+ "description": "Disallow ternary operators when simpler alternatives exist",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "name": "indent-legacy",
- "replacedBy": [
- "indent"
- ]
+ "name": "no-unused-expressions",
+ "description": "Disallow unused expressions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "name": "lines-around-directive",
- "replacedBy": [
- "padding-line-between-statements"
- ]
+ "name": "no-unused-labels",
+ "description": "Disallow unused labels",
+ "recommended": true,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "name": "newline-after-var",
- "replacedBy": [
- "padding-line-between-statements"
- ]
+ "name": "no-useless-call",
+ "description": "Disallow unnecessary calls to `.call()` and `.apply()`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "name": "newline-before-return",
- "replacedBy": [
- "padding-line-between-statements"
- ]
+ "name": "no-useless-catch",
+ "description": "Disallow unnecessary `catch` clauses",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "name": "no-buffer-constructor",
- "replacedBy": []
+ "name": "no-useless-computed-key",
+ "description": "Disallow unnecessary computed property keys in objects and classes",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "name": "no-catch-shadow",
- "replacedBy": [
- "no-shadow"
- ]
+ "name": "no-useless-concat",
+ "description": "Disallow unnecessary concatenation of literals or template literals",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "name": "no-mixed-requires",
- "replacedBy": []
+ "name": "no-useless-constructor",
+ "description": "Disallow unnecessary constructors",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "name": "no-native-reassign",
- "replacedBy": [
- "no-global-assign"
- ]
+ "name": "no-useless-escape",
+ "description": "Disallow unnecessary escape characters",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": true
},
{
- "name": "no-negated-in-lhs",
- "replacedBy": [
- "no-unsafe-negation"
- ]
+ "name": "no-useless-rename",
+ "description": "Disallow renaming import, export, and destructured assignments to the same name",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "name": "no-new-require",
- "replacedBy": []
+ "name": "no-useless-return",
+ "description": "Disallow redundant return statements",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "name": "no-path-concat",
- "replacedBy": []
+ "name": "no-var",
+ "description": "Require `let` or `const` instead of `var`",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "name": "no-process-env",
- "replacedBy": []
+ "name": "no-void",
+ "description": "Disallow `void` operators",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "name": "no-process-exit",
- "replacedBy": []
+ "name": "no-warning-comments",
+ "description": "Disallow specified warning terms in comments",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "name": "no-restricted-modules",
- "replacedBy": []
+ "name": "no-with",
+ "description": "Disallow `with` statements",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "name": "no-spaced-func",
- "replacedBy": [
- "func-call-spacing"
- ]
+ "name": "object-shorthand",
+ "description": "Require or disallow method and property shorthand syntax for object literals",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "name": "no-sync",
- "replacedBy": []
+ "name": "one-var",
+ "description": "Enforce variables to be declared either together or separately in functions",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "name": "prefer-reflect",
- "replacedBy": []
+ "name": "operator-assignment",
+ "description": "Require or disallow assignment operator shorthand where possible",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "name": "require-jsdoc",
- "replacedBy": []
+ "name": "prefer-arrow-callback",
+ "description": "Require using arrow functions for callbacks",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "name": "valid-jsdoc",
- "replacedBy": []
- }
- ]
- },
- "removed": {
- "name": "Removed",
- "description": "These rules from older versions of ESLint (before the
deprecation policy existed) have been replaced by newer rules:",
- "rules": [
+ "name": "prefer-const",
+ "description": "Require `const` declarations for variables that are never reassigned after declared",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "prefer-destructuring",
+ "description": "Require destructuring from arrays and/or objects",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "prefer-exponentiation-operator",
+ "description": "Disallow the use of `Math.pow` in favor of the `**` operator",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
{
- "removed": "generator-star",
- "replacedBy": [
- "generator-star-spacing"
- ]
+ "name": "prefer-named-capture-group",
+ "description": "Enforce using named capture group in regular expression",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": true
},
{
- "removed": "global-strict",
- "replacedBy": [
- "strict"
- ]
+ "name": "prefer-numeric-literals",
+ "description": "Disallow `parseInt()` and `Number.parseInt()` in favor of binary, octal, and hexadecimal literals",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "removed": "no-arrow-condition",
- "replacedBy": [
- "no-confusing-arrow",
- "no-constant-condition"
- ]
+ "name": "prefer-object-has-own",
+ "description": "Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()`",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "removed": "no-comma-dangle",
- "replacedBy": [
- "comma-dangle"
- ]
+ "name": "prefer-object-spread",
+ "description": "Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "removed": "no-empty-class",
- "replacedBy": [
- "no-empty-character-class"
- ]
+ "name": "prefer-promise-reject-errors",
+ "description": "Require using Error objects as Promise rejection reasons",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "removed": "no-empty-label",
- "replacedBy": [
- "no-labels"
- ]
+ "name": "prefer-regex-literals",
+ "description": "Disallow use of the `RegExp` constructor in favor of regular expression literals",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": true
},
{
- "removed": "no-extra-strict",
- "replacedBy": [
- "strict"
- ]
+ "name": "prefer-rest-params",
+ "description": "Require rest parameters instead of `arguments`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "removed": "no-reserved-keys",
- "replacedBy": [
- "quote-props"
- ]
+ "name": "prefer-spread",
+ "description": "Require spread operators instead of `.apply()`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "removed": "no-space-before-semi",
- "replacedBy": [
- "semi-spacing"
- ]
+ "name": "prefer-template",
+ "description": "Require template literals instead of string concatenation",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "removed": "no-wrap-func",
- "replacedBy": [
- "no-extra-parens"
- ]
+ "name": "radix",
+ "description": "Enforce the consistent use of the radix argument when using `parseInt()`",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": true
},
{
- "removed": "space-after-function-name",
- "replacedBy": [
- "space-before-function-paren"
- ]
+ "name": "require-await",
+ "description": "Disallow async functions which have no `await` expression",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "removed": "space-after-keywords",
- "replacedBy": [
- "keyword-spacing"
- ]
+ "name": "require-unicode-regexp",
+ "description": "Enforce the use of `u` or `v` flag on RegExp",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": true
},
{
- "removed": "space-before-function-parentheses",
- "replacedBy": [
- "space-before-function-paren"
- ]
+ "name": "require-yield",
+ "description": "Require generator functions to contain `yield`",
+ "recommended": true,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "removed": "space-before-keywords",
- "replacedBy": [
- "keyword-spacing"
- ]
+ "name": "sort-imports",
+ "description": "Enforce sorted import declarations within modules",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "removed": "space-in-brackets",
- "replacedBy": [
- "object-curly-spacing",
- "array-bracket-spacing"
- ]
+ "name": "sort-keys",
+ "description": "Require object keys to be sorted",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "removed": "space-return-throw-case",
- "replacedBy": [
- "keyword-spacing"
- ]
+ "name": "sort-vars",
+ "description": "Require variables within the same declaration block to be sorted",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
},
{
- "removed": "space-unary-word-ops",
- "replacedBy": [
- "space-unary-ops"
- ]
+ "name": "strict",
+ "description": "Require or disallow strict mode directives",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "symbol-description",
+ "description": "Require symbol descriptions",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "vars-on-top",
+ "description": "Require `var` declarations be placed at the top of their containing scope",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "yoda",
+ "description": "Require or disallow \"Yoda\" conditions",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
+ }
+ ],
+ "layout": [
+ {
+ "name": "line-comment-position",
+ "description": "Enforce position of line comments",
+ "recommended": false,
+ "fixable": false,
+ "hasSuggestions": false
},
{
- "removed": "spaced-line-comment",
- "replacedBy": [
- "spaced-comment"
- ]
+ "name": "unicode-bom",
+ "description": "Require or disallow Unicode byte order mark (BOM)",
+ "recommended": false,
+ "fixable": true,
+ "hasSuggestions": false
}
]
- }
+ },
+ "deprecated": [
+ {
+ "name": "array-bracket-newline",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "array-bracket-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "array-element-newline",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "arrow-parens",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "arrow-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "block-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "brace-style",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "callback-return",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "comma-dangle",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "comma-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "comma-style",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "computed-property-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "dot-location",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "eol-last",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "func-call-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "function-call-argument-newline",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "function-paren-newline",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "generator-star-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "global-require",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "handle-callback-err",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "id-blacklist",
+ "replacedBy": [
+ "id-denylist"
+ ],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "implicit-arrow-linebreak",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "indent",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "indent-legacy",
+ "replacedBy": [
+ "indent"
+ ],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "jsx-quotes",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "key-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "keyword-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "linebreak-style",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "lines-around-comment",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "lines-around-directive",
+ "replacedBy": [
+ "padding-line-between-statements"
+ ],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "lines-between-class-members",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "max-len",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "max-statements-per-line",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "multiline-ternary",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "new-parens",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "newline-after-var",
+ "replacedBy": [
+ "padding-line-between-statements"
+ ],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "newline-before-return",
+ "replacedBy": [
+ "padding-line-between-statements"
+ ],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "newline-per-chained-call",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-buffer-constructor",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-catch-shadow",
+ "replacedBy": [
+ "no-shadow"
+ ],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-confusing-arrow",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-extra-parens",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-extra-semi",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-floating-decimal",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-mixed-operators",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-mixed-requires",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-mixed-spaces-and-tabs",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-multi-spaces",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-multiple-empty-lines",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-native-reassign",
+ "replacedBy": [
+ "no-global-assign"
+ ],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-negated-in-lhs",
+ "replacedBy": [
+ "no-unsafe-negation"
+ ],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-new-object",
+ "replacedBy": [
+ "no-object-constructor"
+ ],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-new-require",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-path-concat",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-process-env",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-process-exit",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-restricted-modules",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-return-await",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": true
+ },
+ {
+ "name": "no-spaced-func",
+ "replacedBy": [
+ "func-call-spacing"
+ ],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-sync",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-tabs",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-trailing-spaces",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "no-whitespace-before-property",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "nonblock-statement-body-position",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "object-curly-newline",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "object-curly-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "object-property-newline",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "one-var-declaration-per-line",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "operator-linebreak",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "padded-blocks",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "padding-line-between-statements",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "prefer-reflect",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "quote-props",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "quotes",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "require-jsdoc",
+ "replacedBy": [],
+ "fixable": false,
+ "hasSuggestions": false
+ },
+ {
+ "name": "rest-spread-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "semi",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "semi-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "semi-style",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "space-before-blocks",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "space-before-function-paren",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "space-in-parens",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "space-infix-ops",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "space-unary-ops",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "spaced-comment",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "switch-colon-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "template-curly-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "template-tag-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "valid-jsdoc",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "wrap-iife",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "wrap-regex",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ },
+ {
+ "name": "yield-star-spacing",
+ "replacedBy": [],
+ "fixable": true,
+ "hasSuggestions": false
+ }
+ ],
+ "removed": [
+ {
+ "removed": "generator-star",
+ "replacedBy": [
+ "generator-star-spacing"
+ ]
+ },
+ {
+ "removed": "global-strict",
+ "replacedBy": [
+ "strict"
+ ]
+ },
+ {
+ "removed": "no-arrow-condition",
+ "replacedBy": [
+ "no-confusing-arrow",
+ "no-constant-condition"
+ ]
+ },
+ {
+ "removed": "no-comma-dangle",
+ "replacedBy": [
+ "comma-dangle"
+ ]
+ },
+ {
+ "removed": "no-empty-class",
+ "replacedBy": [
+ "no-empty-character-class"
+ ]
+ },
+ {
+ "removed": "no-empty-label",
+ "replacedBy": [
+ "no-labels"
+ ]
+ },
+ {
+ "removed": "no-extra-strict",
+ "replacedBy": [
+ "strict"
+ ]
+ },
+ {
+ "removed": "no-reserved-keys",
+ "replacedBy": [
+ "quote-props"
+ ]
+ },
+ {
+ "removed": "no-space-before-semi",
+ "replacedBy": [
+ "semi-spacing"
+ ]
+ },
+ {
+ "removed": "no-wrap-func",
+ "replacedBy": [
+ "no-extra-parens"
+ ]
+ },
+ {
+ "removed": "space-after-function-name",
+ "replacedBy": [
+ "space-before-function-paren"
+ ]
+ },
+ {
+ "removed": "space-after-keywords",
+ "replacedBy": [
+ "keyword-spacing"
+ ]
+ },
+ {
+ "removed": "space-before-function-parentheses",
+ "replacedBy": [
+ "space-before-function-paren"
+ ]
+ },
+ {
+ "removed": "space-before-keywords",
+ "replacedBy": [
+ "keyword-spacing"
+ ]
+ },
+ {
+ "removed": "space-in-brackets",
+ "replacedBy": [
+ "object-curly-spacing",
+ "array-bracket-spacing"
+ ]
+ },
+ {
+ "removed": "space-return-throw-case",
+ "replacedBy": [
+ "keyword-spacing"
+ ]
+ },
+ {
+ "removed": "space-unary-word-ops",
+ "replacedBy": [
+ "space-unary-ops"
+ ]
+ },
+ {
+ "removed": "spaced-line-comment",
+ "replacedBy": [
+ "spaced-comment"
+ ]
+ }
+ ]
}
\ No newline at end of file
diff --git a/docs/src/_data/rules_categories.js b/docs/src/_data/rules_categories.js
new file mode 100644
index 00000000000..46856958f22
--- /dev/null
+++ b/docs/src/_data/rules_categories.js
@@ -0,0 +1,26 @@
+module.exports = eleventy => {
+ const PATH_PREFIX = eleventy.PATH_PREFIX;
+
+ return {
+ problem: {
+ displayName: "Possible Problems",
+ description: "These rules relate to possible logic errors in code:"
+ },
+ suggestion: {
+ displayName: "Suggestions",
+ description: "These rules suggest alternate ways of doing things:"
+ },
+ layout: {
+ displayName: "Layout & Formatting",
+ description: "These rules care about how the code looks rather than how it executes:"
+ },
+ deprecated: {
+ displayName: "Deprecated",
+ description: `These rules have been deprecated in accordance with the
deprecation policy, and replaced by newer rules:`
+ },
+ removed: {
+ displayName: "Removed",
+ description: `These rules from older versions of ESLint (before the
deprecation policy existed) have been replaced by newer rules:`
+ }
+ }
+};
diff --git a/docs/src/_data/rules_meta.json b/docs/src/_data/rules_meta.json
index 6d9fb3d5a22..06db19be509 100644
--- a/docs/src/_data/rules_meta.json
+++ b/docs/src/_data/rules_meta.json
@@ -8,6 +8,8 @@
}
},
"array-bracket-newline": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce linebreaks after opening and before closing array brackets",
@@ -17,6 +19,8 @@
"fixable": "whitespace"
},
"array-bracket-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing inside array brackets",
@@ -31,9 +35,12 @@
"description": "Enforce `return` statements in callbacks of array methods",
"recommended": false,
"url": "https://eslint.org/docs/latest/rules/array-callback-return"
- }
+ },
+ "hasSuggestions": true
},
"array-element-newline": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce line breaks after each array element",
@@ -52,6 +59,8 @@
"fixable": "code"
},
"arrow-parens": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require parentheses around arrow function arguments",
@@ -61,6 +70,8 @@
"fixable": "code"
},
"arrow-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing before and after the arrow in arrow functions",
@@ -78,6 +89,8 @@
}
},
"block-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Disallow or enforce spaces inside of blocks after opening block and before closing block",
@@ -87,6 +100,8 @@
"fixable": "whitespace"
},
"brace-style": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent brace style for blocks",
@@ -131,6 +146,8 @@
}
},
"comma-dangle": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require or disallow trailing commas",
@@ -140,6 +157,8 @@
"fixable": "code"
},
"comma-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing before and after commas",
@@ -149,6 +168,8 @@
"fixable": "whitespace"
},
"comma-style": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent comma style",
@@ -166,6 +187,8 @@
}
},
"computed-property-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing inside computed property brackets",
@@ -232,6 +255,8 @@
}
},
"dot-location": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent newlines before and after dots",
@@ -250,6 +275,8 @@
"fixable": "code"
},
"eol-last": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require or disallow newline at the end of files",
@@ -277,6 +304,8 @@
"fixable": null
},
"func-call-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require or disallow spacing between function identifiers and their invocations",
@@ -310,6 +339,8 @@
}
},
"function-call-argument-newline": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce line breaks between arguments of a function call",
@@ -319,6 +350,8 @@
"fixable": "whitespace"
},
"function-paren-newline": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent line breaks inside function parentheses",
@@ -328,6 +361,8 @@
"fixable": "whitespace"
},
"generator-star-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing around `*` operators in generator functions",
@@ -418,6 +453,8 @@
}
},
"implicit-arrow-linebreak": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce the location of arrow function bodies",
@@ -427,6 +464,8 @@
"fixable": "whitespace"
},
"indent": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent indentation",
@@ -457,6 +496,8 @@
}
},
"jsx-quotes": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce the consistent use of either double or single quotes in JSX attributes",
@@ -466,6 +507,8 @@
"fixable": "whitespace"
},
"key-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing between keys and values in object literal properties",
@@ -475,6 +518,8 @@
"fixable": "whitespace"
},
"keyword-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing before and after keywords",
@@ -492,6 +537,8 @@
}
},
"linebreak-style": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent linebreak style",
@@ -501,6 +548,8 @@
"fixable": "whitespace"
},
"lines-around-comment": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require empty lines around comments",
@@ -523,6 +572,8 @@
]
},
"lines-between-class-members": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require or disallow an empty line between class members",
@@ -558,6 +609,8 @@
}
},
"max-len": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce a maximum line length",
@@ -606,6 +659,8 @@
}
},
"max-statements-per-line": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce a maximum number of statements allowed per line",
@@ -623,6 +678,8 @@
"fixable": "whitespace"
},
"multiline-ternary": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce newlines between operands of ternary expressions",
@@ -640,6 +697,8 @@
}
},
"new-parens": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce or disallow parentheses when invoking a constructor with no arguments",
@@ -675,6 +734,8 @@
]
},
"newline-per-chained-call": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require a newline after each call in a method chain",
@@ -697,7 +758,8 @@
"description": "Disallow `Array` constructors",
"recommended": false,
"url": "https://eslint.org/docs/latest/rules/no-array-constructor"
- }
+ },
+ "hasSuggestions": true
},
"no-async-promise-executor": {
"type": "problem",
@@ -788,6 +850,8 @@
}
},
"no-confusing-arrow": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "suggestion",
"docs": {
"description": "Disallow arrow functions where they could be confused with comparisons",
@@ -802,7 +866,8 @@
"description": "Disallow the use of `console`",
"recommended": false,
"url": "https://eslint.org/docs/latest/rules/no-console"
- }
+ },
+ "hasSuggestions": true
},
"no-const-assign": {
"type": "problem",
@@ -1037,6 +1102,8 @@
"fixable": "code"
},
"no-extra-parens": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Disallow unnecessary parentheses",
@@ -1046,6 +1113,8 @@
"fixable": "code"
},
"no-extra-semi": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "suggestion",
"docs": {
"description": "Disallow unnecessary semicolons",
@@ -1063,6 +1132,8 @@
}
},
"no-floating-decimal": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "suggestion",
"docs": {
"description": "Disallow leading or trailing decimal points in numeric literals",
@@ -1235,6 +1306,8 @@
"hasSuggestions": true
},
"no-mixed-operators": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "suggestion",
"docs": {
"description": "Disallow mixed binary operators",
@@ -1253,6 +1326,8 @@
}
},
"no-mixed-spaces-and-tabs": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Disallow mixed spaces and tabs for indentation",
@@ -1269,6 +1344,8 @@
}
},
"no-multi-spaces": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Disallow multiple spaces",
@@ -1286,6 +1363,8 @@
}
},
"no-multiple-empty-lines": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Disallow multiple empty lines",
@@ -1364,7 +1443,11 @@
"description": "Disallow `Object` constructors",
"recommended": false,
"url": "https://eslint.org/docs/latest/rules/no-new-object"
- }
+ },
+ "deprecated": true,
+ "replacedBy": [
+ "no-object-constructor"
+ ]
},
"no-new-require": {
"deprecated": true,
@@ -1409,6 +1492,15 @@
"url": "https://eslint.org/docs/latest/rules/no-obj-calls"
}
},
+ "no-object-constructor": {
+ "type": "suggestion",
+ "docs": {
+ "description": "Disallow calls to the `Object` constructor without an argument",
+ "recommended": false,
+ "url": "https://eslint.org/docs/latest/rules/no-object-constructor"
+ },
+ "hasSuggestions": true
+ },
"no-octal": {
"type": "suggestion",
"docs": {
@@ -1477,7 +1569,8 @@
"description": "Disallow returning values from Promise executor functions",
"recommended": false,
"url": "https://eslint.org/docs/latest/rules/no-promise-executor-return"
- }
+ },
+ "hasSuggestions": true
},
"no-proto": {
"type": "suggestion",
@@ -1493,7 +1586,8 @@
"description": "Disallow calling some `Object.prototype` methods directly on objects",
"recommended": true,
"url": "https://eslint.org/docs/latest/rules/no-prototype-builtins"
- }
+ },
+ "hasSuggestions": true
},
"no-redeclare": {
"type": "suggestion",
@@ -1578,7 +1672,9 @@
"recommended": false,
"url": "https://eslint.org/docs/latest/rules/no-return-await"
},
- "fixable": null
+ "fixable": null,
+ "deprecated": true,
+ "replacedBy": []
},
"no-script-url": {
"type": "suggestion",
@@ -1668,6 +1764,8 @@
}
},
"no-tabs": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Disallow all tabs",
@@ -1708,6 +1806,8 @@
}
},
"no-trailing-spaces": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Disallow trailing whitespace at the end of lines",
@@ -1960,6 +2060,8 @@
}
},
"no-whitespace-before-property": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Disallow whitespace before properties",
@@ -1977,6 +2079,8 @@
}
},
"nonblock-statement-body-position": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce the location of single-line statements",
@@ -1986,6 +2090,8 @@
"fixable": "whitespace"
},
"object-curly-newline": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent line breaks after opening and before closing braces",
@@ -1995,6 +2101,8 @@
"fixable": "whitespace"
},
"object-curly-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing inside braces",
@@ -2004,6 +2112,8 @@
"fixable": "whitespace"
},
"object-property-newline": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce placing object properties on separate lines",
@@ -2031,6 +2141,8 @@
"fixable": "code"
},
"one-var-declaration-per-line": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "suggestion",
"docs": {
"description": "Require or disallow newlines around variable declarations",
@@ -2049,6 +2161,8 @@
"fixable": "code"
},
"operator-linebreak": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent linebreak style for operators",
@@ -2058,6 +2172,8 @@
"fixable": "code"
},
"padded-blocks": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require or disallow padding within blocks",
@@ -2067,6 +2183,8 @@
"fixable": "whitespace"
},
"padding-line-between-statements": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require or disallow padding lines between statements",
@@ -2202,6 +2320,8 @@
"fixable": "code"
},
"quote-props": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "suggestion",
"docs": {
"description": "Require quotes around object literal property names",
@@ -2211,6 +2331,8 @@
"fixable": "code"
},
"quotes": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce the consistent use of either backticks, double, or single quotes",
@@ -2258,7 +2380,7 @@
"require-unicode-regexp": {
"type": "suggestion",
"docs": {
- "description": "Enforce the use of `u` flag on RegExp",
+ "description": "Enforce the use of `u` or `v` flag on RegExp",
"recommended": false,
"url": "https://eslint.org/docs/latest/rules/require-unicode-regexp"
},
@@ -2273,6 +2395,8 @@
}
},
"rest-spread-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce spacing between rest and spread operators and their expressions",
@@ -2282,6 +2406,8 @@
"fixable": "whitespace"
},
"semi": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require or disallow semicolons instead of ASI",
@@ -2291,6 +2417,8 @@
"fixable": "code"
},
"semi-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing before and after semicolons",
@@ -2300,6 +2428,8 @@
"fixable": "whitespace"
},
"semi-style": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce location of semicolons",
@@ -2335,6 +2465,8 @@
"fixable": "code"
},
"space-before-blocks": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing before blocks",
@@ -2344,6 +2476,8 @@
"fixable": "whitespace"
},
"space-before-function-paren": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing before `function` definition opening parenthesis",
@@ -2353,6 +2487,8 @@
"fixable": "whitespace"
},
"space-in-parens": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing inside parentheses",
@@ -2362,6 +2498,8 @@
"fixable": "whitespace"
},
"space-infix-ops": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require spacing around infix operators",
@@ -2371,6 +2509,8 @@
"fixable": "whitespace"
},
"space-unary-ops": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce consistent spacing before or after unary operators",
@@ -2380,6 +2520,8 @@
"fixable": "whitespace"
},
"spaced-comment": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "suggestion",
"docs": {
"description": "Enforce consistent spacing after the `//` or `/*` in a comment",
@@ -2398,6 +2540,8 @@
"fixable": "code"
},
"switch-colon-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Enforce spacing around colons of switch statements",
@@ -2416,6 +2560,8 @@
"fixable": null
},
"template-curly-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require or disallow spacing around embedded expressions of template strings",
@@ -2425,6 +2571,8 @@
"fixable": "whitespace"
},
"template-tag-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require or disallow spacing between template tags and their literals",
@@ -2479,6 +2627,8 @@
}
},
"wrap-iife": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require parentheses around immediate `function` invocations",
@@ -2488,6 +2638,8 @@
"fixable": "code"
},
"wrap-regex": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require parenthesis around regex literals",
@@ -2497,6 +2649,8 @@
"fixable": "code"
},
"yield-star-spacing": {
+ "deprecated": true,
+ "replacedBy": [],
"type": "layout",
"docs": {
"description": "Require or disallow spacing around the `*` in `yield*` expressions",
diff --git a/docs/src/_data/sites/en.yml b/docs/src/_data/sites/en.yml
index ccd87ad37bd..532630be810 100644
--- a/docs/src/_data/sites/en.yml
+++ b/docs/src/_data/sites/en.yml
@@ -87,7 +87,7 @@ footer:
language: Language
latest: Latest
copyright: >
- © OpenJS Foundation and ESLint contributors,
www.openjsf.org. Content licensed under
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
+ © OpenJS Foundation and ESLint contributors,
www.openjsf.org. Content licensed under
MIT License.
links:
open_jsf: The OpenJS Foundation
terms: Terms of Use
diff --git a/docs/src/_data/sites/zh-hans.yml b/docs/src/_data/sites/zh-hans.yml
index efa9474b89d..421401535d0 100644
--- a/docs/src/_data/sites/zh-hans.yml
+++ b/docs/src/_data/sites/zh-hans.yml
@@ -47,7 +47,7 @@ shared:
#------------------------------------------------------------------------------
# Navigation
#------------------------------------------------------------------------------
-
+
navigation:
- text: 团队
link: team
@@ -85,7 +85,7 @@ footer:
language: 语言
latest: 最新
copyright: >
- © OpenJS Foundation and ESLint contributors,
www.openjsf.org. Content licensed under
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
+ © OpenJS Foundation and ESLint contributors,
www.openjsf.org. Content licensed under
MIT License.
links:
open_jsf: OpenJS 基金会
terms: 使用条款
diff --git a/docs/src/_includes/components/rule-categories.macro.html b/docs/src/_includes/components/rule-categories.macro.html
index 193f6def64e..f38d371049e 100644
--- a/docs/src/_includes/components/rule-categories.macro.html
+++ b/docs/src/_includes/components/rule-categories.macro.html
@@ -21,7 +21,7 @@
💡 hasSuggestions
- Some problems reported by this rule are manually fixable by editor suggestions
+ Some problems reported by this rule are manually fixable by editor suggestions
{%- endif -%}
diff --git a/docs/src/_includes/components/rule.macro.html b/docs/src/_includes/components/rule.macro.html
index e4cf876d0d9..cd5d61b0386 100644
--- a/docs/src/_includes/components/rule.macro.html
+++ b/docs/src/_includes/components/rule.macro.html
@@ -26,22 +26,24 @@
{{ params.description }}
{%- endif -%}
+ {%- if params.removed == undefined -%}