eslint 8.18.0 → 8.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -9
- package/lib/config/default-config.js +16 -7
- package/lib/config/flat-config-array.js +41 -2
- package/lib/config/flat-config-helpers.js +9 -1
- package/lib/eslint/eslint-helpers.js +621 -0
- package/lib/eslint/flat-eslint.js +1164 -0
- package/lib/eslint/index.js +3 -1
- package/lib/linter/linter.js +72 -4
- package/lib/rule-tester/flat-rule-tester.js +41 -38
- package/lib/rule-tester/rule-tester.js +42 -0
- package/lib/rules/accessor-pairs.js +1 -1
- package/lib/rules/array-bracket-newline.js +1 -1
- package/lib/rules/array-bracket-spacing.js +1 -1
- package/lib/rules/array-callback-return.js +1 -1
- package/lib/rules/array-element-newline.js +1 -1
- package/lib/rules/arrow-body-style.js +1 -1
- package/lib/rules/arrow-parens.js +1 -1
- package/lib/rules/arrow-spacing.js +1 -1
- package/lib/rules/block-scoped-var.js +1 -1
- package/lib/rules/block-spacing.js +1 -1
- package/lib/rules/brace-style.js +1 -1
- package/lib/rules/callback-return.js +1 -1
- package/lib/rules/camelcase.js +1 -1
- package/lib/rules/capitalized-comments.js +1 -1
- package/lib/rules/class-methods-use-this.js +1 -1
- package/lib/rules/comma-dangle.js +1 -1
- package/lib/rules/comma-spacing.js +36 -42
- package/lib/rules/comma-style.js +1 -1
- package/lib/rules/complexity.js +1 -1
- package/lib/rules/computed-property-spacing.js +1 -1
- package/lib/rules/consistent-return.js +1 -1
- package/lib/rules/consistent-this.js +1 -1
- package/lib/rules/constructor-super.js +1 -1
- package/lib/rules/curly.js +1 -1
- package/lib/rules/default-case-last.js +1 -1
- package/lib/rules/default-case.js +1 -1
- package/lib/rules/default-param-last.js +1 -1
- package/lib/rules/dot-location.js +1 -1
- package/lib/rules/dot-notation.js +1 -1
- package/lib/rules/eol-last.js +1 -1
- package/lib/rules/eqeqeq.js +1 -1
- package/lib/rules/for-direction.js +1 -1
- package/lib/rules/func-call-spacing.js +1 -1
- package/lib/rules/func-name-matching.js +1 -1
- package/lib/rules/func-names.js +1 -1
- package/lib/rules/func-style.js +1 -1
- package/lib/rules/function-call-argument-newline.js +1 -1
- package/lib/rules/function-paren-newline.js +1 -1
- package/lib/rules/generator-star-spacing.js +1 -1
- package/lib/rules/getter-return.js +1 -1
- package/lib/rules/global-require.js +1 -1
- package/lib/rules/grouped-accessor-pairs.js +1 -1
- package/lib/rules/guard-for-in.js +1 -1
- package/lib/rules/handle-callback-err.js +1 -1
- package/lib/rules/id-blacklist.js +1 -1
- package/lib/rules/id-denylist.js +1 -1
- package/lib/rules/id-length.js +1 -1
- package/lib/rules/id-match.js +1 -1
- package/lib/rules/implicit-arrow-linebreak.js +1 -1
- package/lib/rules/indent-legacy.js +1 -1
- package/lib/rules/indent.js +3 -3
- package/lib/rules/init-declarations.js +1 -1
- package/lib/rules/jsx-quotes.js +1 -1
- package/lib/rules/key-spacing.js +5 -2
- package/lib/rules/keyword-spacing.js +1 -1
- package/lib/rules/line-comment-position.js +1 -1
- package/lib/rules/linebreak-style.js +1 -1
- package/lib/rules/lines-around-comment.js +12 -5
- package/lib/rules/lines-around-directive.js +1 -1
- package/lib/rules/lines-between-class-members.js +1 -1
- package/lib/rules/max-classes-per-file.js +1 -1
- package/lib/rules/max-depth.js +1 -1
- package/lib/rules/max-len.js +1 -1
- package/lib/rules/max-lines-per-function.js +1 -1
- package/lib/rules/max-lines.js +1 -1
- package/lib/rules/max-nested-callbacks.js +1 -1
- package/lib/rules/max-params.js +1 -1
- package/lib/rules/max-statements-per-line.js +1 -1
- package/lib/rules/max-statements.js +1 -1
- package/lib/rules/multiline-comment-style.js +1 -1
- package/lib/rules/multiline-ternary.js +1 -1
- package/lib/rules/new-cap.js +1 -1
- package/lib/rules/new-parens.js +1 -1
- package/lib/rules/newline-after-var.js +1 -1
- package/lib/rules/newline-before-return.js +1 -1
- package/lib/rules/newline-per-chained-call.js +1 -1
- package/lib/rules/no-alert.js +1 -1
- package/lib/rules/no-array-constructor.js +1 -1
- package/lib/rules/no-async-promise-executor.js +1 -1
- package/lib/rules/no-await-in-loop.js +1 -1
- package/lib/rules/no-bitwise.js +1 -1
- package/lib/rules/no-buffer-constructor.js +1 -1
- package/lib/rules/no-caller.js +1 -1
- package/lib/rules/no-case-declarations.js +1 -1
- package/lib/rules/no-catch-shadow.js +1 -1
- package/lib/rules/no-class-assign.js +1 -1
- package/lib/rules/no-compare-neg-zero.js +1 -1
- package/lib/rules/no-cond-assign.js +1 -1
- package/lib/rules/no-confusing-arrow.js +1 -1
- package/lib/rules/no-console.js +1 -1
- package/lib/rules/no-const-assign.js +1 -1
- package/lib/rules/no-constant-binary-expression.js +1 -1
- package/lib/rules/no-constant-condition.js +1 -1
- package/lib/rules/no-constructor-return.js +1 -1
- package/lib/rules/no-continue.js +1 -1
- package/lib/rules/no-control-regex.js +1 -1
- package/lib/rules/no-debugger.js +1 -1
- package/lib/rules/no-delete-var.js +1 -1
- package/lib/rules/no-div-regex.js +1 -1
- package/lib/rules/no-dupe-args.js +1 -1
- package/lib/rules/no-dupe-class-members.js +1 -1
- package/lib/rules/no-dupe-else-if.js +1 -1
- package/lib/rules/no-dupe-keys.js +1 -1
- package/lib/rules/no-duplicate-case.js +1 -1
- package/lib/rules/no-duplicate-imports.js +1 -1
- package/lib/rules/no-else-return.js +1 -1
- package/lib/rules/no-empty-character-class.js +1 -1
- package/lib/rules/no-empty-function.js +1 -1
- package/lib/rules/no-empty-pattern.js +1 -1
- package/lib/rules/no-empty.js +1 -1
- package/lib/rules/no-eq-null.js +1 -1
- package/lib/rules/no-eval.js +1 -1
- package/lib/rules/no-ex-assign.js +1 -1
- package/lib/rules/no-extend-native.js +1 -1
- package/lib/rules/no-extra-bind.js +1 -1
- package/lib/rules/no-extra-boolean-cast.js +1 -1
- package/lib/rules/no-extra-label.js +1 -1
- package/lib/rules/no-extra-parens.js +1 -1
- package/lib/rules/no-extra-semi.js +1 -1
- package/lib/rules/no-fallthrough.js +1 -1
- package/lib/rules/no-floating-decimal.js +1 -1
- package/lib/rules/no-func-assign.js +1 -1
- package/lib/rules/no-global-assign.js +1 -1
- package/lib/rules/no-implicit-coercion.js +1 -1
- package/lib/rules/no-implicit-globals.js +1 -1
- package/lib/rules/no-implied-eval.js +1 -1
- package/lib/rules/no-import-assign.js +1 -1
- package/lib/rules/no-inline-comments.js +1 -1
- package/lib/rules/no-inner-declarations.js +1 -1
- package/lib/rules/no-invalid-regexp.js +1 -1
- package/lib/rules/no-invalid-this.js +1 -1
- package/lib/rules/no-irregular-whitespace.js +1 -1
- package/lib/rules/no-iterator.js +1 -1
- package/lib/rules/no-label-var.js +1 -1
- package/lib/rules/no-labels.js +1 -1
- package/lib/rules/no-lone-blocks.js +1 -1
- package/lib/rules/no-lonely-if.js +1 -1
- package/lib/rules/no-loop-func.js +1 -1
- package/lib/rules/no-loss-of-precision.js +1 -1
- package/lib/rules/no-magic-numbers.js +1 -1
- package/lib/rules/no-misleading-character-class.js +1 -1
- package/lib/rules/no-mixed-operators.js +1 -1
- package/lib/rules/no-mixed-requires.js +1 -1
- package/lib/rules/no-mixed-spaces-and-tabs.js +1 -1
- package/lib/rules/no-multi-assign.js +1 -1
- package/lib/rules/no-multi-spaces.js +1 -1
- package/lib/rules/no-multi-str.js +1 -1
- package/lib/rules/no-multiple-empty-lines.js +1 -1
- package/lib/rules/no-native-reassign.js +1 -1
- package/lib/rules/no-negated-condition.js +1 -1
- package/lib/rules/no-negated-in-lhs.js +1 -1
- package/lib/rules/no-nested-ternary.js +1 -1
- package/lib/rules/no-new-func.js +1 -1
- package/lib/rules/no-new-object.js +1 -1
- package/lib/rules/no-new-require.js +1 -1
- package/lib/rules/no-new-symbol.js +1 -1
- package/lib/rules/no-new-wrappers.js +1 -1
- package/lib/rules/no-new.js +1 -1
- package/lib/rules/no-nonoctal-decimal-escape.js +1 -1
- package/lib/rules/no-obj-calls.js +1 -1
- package/lib/rules/no-octal-escape.js +1 -1
- package/lib/rules/no-octal.js +1 -1
- package/lib/rules/no-param-reassign.js +1 -1
- package/lib/rules/no-path-concat.js +1 -1
- package/lib/rules/no-plusplus.js +1 -1
- package/lib/rules/no-process-env.js +1 -1
- package/lib/rules/no-process-exit.js +1 -1
- package/lib/rules/no-promise-executor-return.js +1 -1
- package/lib/rules/no-proto.js +1 -1
- package/lib/rules/no-prototype-builtins.js +1 -1
- package/lib/rules/no-redeclare.js +1 -1
- package/lib/rules/no-regex-spaces.js +1 -1
- package/lib/rules/no-restricted-exports.js +1 -1
- package/lib/rules/no-restricted-globals.js +1 -1
- package/lib/rules/no-restricted-imports.js +77 -12
- package/lib/rules/no-restricted-modules.js +1 -1
- package/lib/rules/no-restricted-properties.js +1 -1
- package/lib/rules/no-restricted-syntax.js +1 -1
- package/lib/rules/no-return-assign.js +1 -1
- package/lib/rules/no-return-await.js +1 -1
- package/lib/rules/no-script-url.js +1 -1
- package/lib/rules/no-self-assign.js +1 -1
- package/lib/rules/no-self-compare.js +1 -1
- package/lib/rules/no-sequences.js +1 -1
- package/lib/rules/no-setter-return.js +1 -1
- package/lib/rules/no-shadow-restricted-names.js +1 -1
- package/lib/rules/no-shadow.js +1 -1
- package/lib/rules/no-spaced-func.js +1 -1
- package/lib/rules/no-sparse-arrays.js +1 -1
- package/lib/rules/no-sync.js +1 -1
- package/lib/rules/no-tabs.js +1 -1
- package/lib/rules/no-template-curly-in-string.js +1 -1
- package/lib/rules/no-ternary.js +1 -1
- package/lib/rules/no-this-before-super.js +1 -1
- package/lib/rules/no-throw-literal.js +1 -1
- package/lib/rules/no-trailing-spaces.js +1 -1
- package/lib/rules/no-undef-init.js +1 -1
- package/lib/rules/no-undef.js +1 -1
- package/lib/rules/no-undefined.js +1 -1
- package/lib/rules/no-underscore-dangle.js +1 -1
- package/lib/rules/no-unexpected-multiline.js +1 -1
- package/lib/rules/no-unmodified-loop-condition.js +1 -1
- package/lib/rules/no-unneeded-ternary.js +1 -1
- package/lib/rules/no-unreachable-loop.js +1 -1
- package/lib/rules/no-unreachable.js +1 -1
- package/lib/rules/no-unsafe-finally.js +1 -1
- package/lib/rules/no-unsafe-negation.js +1 -1
- package/lib/rules/no-unsafe-optional-chaining.js +1 -1
- package/lib/rules/no-unused-expressions.js +1 -1
- package/lib/rules/no-unused-labels.js +1 -1
- package/lib/rules/no-unused-private-class-members.js +1 -1
- package/lib/rules/no-unused-vars.js +1 -1
- package/lib/rules/no-use-before-define.js +1 -1
- package/lib/rules/no-useless-backreference.js +1 -1
- package/lib/rules/no-useless-call.js +1 -1
- package/lib/rules/no-useless-catch.js +1 -1
- package/lib/rules/no-useless-computed-key.js +1 -1
- package/lib/rules/no-useless-concat.js +1 -1
- package/lib/rules/no-useless-constructor.js +1 -1
- package/lib/rules/no-useless-escape.js +1 -1
- package/lib/rules/no-useless-rename.js +1 -1
- package/lib/rules/no-useless-return.js +1 -1
- package/lib/rules/no-var.js +1 -1
- package/lib/rules/no-void.js +1 -1
- package/lib/rules/no-warning-comments.js +27 -41
- package/lib/rules/no-whitespace-before-property.js +1 -1
- package/lib/rules/no-with.js +1 -1
- package/lib/rules/nonblock-statement-body-position.js +1 -1
- package/lib/rules/object-curly-newline.js +1 -1
- package/lib/rules/object-curly-spacing.js +1 -1
- package/lib/rules/object-property-newline.js +1 -1
- package/lib/rules/object-shorthand.js +1 -1
- package/lib/rules/one-var-declaration-per-line.js +1 -1
- package/lib/rules/one-var.js +1 -1
- package/lib/rules/operator-assignment.js +1 -1
- package/lib/rules/operator-linebreak.js +1 -1
- package/lib/rules/padded-blocks.js +1 -1
- package/lib/rules/padding-line-between-statements.js +1 -1
- package/lib/rules/prefer-arrow-callback.js +1 -1
- package/lib/rules/prefer-const.js +1 -1
- package/lib/rules/prefer-destructuring.js +1 -1
- package/lib/rules/prefer-exponentiation-operator.js +1 -1
- package/lib/rules/prefer-named-capture-group.js +1 -1
- package/lib/rules/prefer-numeric-literals.js +1 -1
- package/lib/rules/prefer-object-has-own.js +1 -1
- package/lib/rules/prefer-object-spread.js +1 -1
- package/lib/rules/prefer-promise-reject-errors.js +1 -1
- package/lib/rules/prefer-reflect.js +1 -1
- package/lib/rules/prefer-regex-literals.js +1 -1
- package/lib/rules/prefer-rest-params.js +1 -1
- package/lib/rules/prefer-spread.js +1 -1
- package/lib/rules/prefer-template.js +1 -1
- package/lib/rules/quote-props.js +1 -1
- package/lib/rules/quotes.js +1 -1
- package/lib/rules/radix.js +1 -1
- package/lib/rules/require-atomic-updates.js +1 -1
- package/lib/rules/require-await.js +1 -1
- package/lib/rules/require-jsdoc.js +1 -1
- package/lib/rules/require-unicode-regexp.js +1 -1
- package/lib/rules/require-yield.js +1 -1
- package/lib/rules/rest-spread-spacing.js +1 -1
- package/lib/rules/semi-spacing.js +1 -1
- package/lib/rules/semi-style.js +1 -1
- package/lib/rules/semi.js +1 -1
- package/lib/rules/sort-imports.js +1 -1
- package/lib/rules/sort-keys.js +44 -1
- package/lib/rules/sort-vars.js +1 -1
- package/lib/rules/space-before-blocks.js +1 -1
- package/lib/rules/space-before-function-paren.js +1 -1
- package/lib/rules/space-in-parens.js +1 -1
- package/lib/rules/space-infix-ops.js +1 -1
- package/lib/rules/space-unary-ops.js +1 -1
- package/lib/rules/spaced-comment.js +1 -1
- package/lib/rules/strict.js +1 -1
- package/lib/rules/switch-colon-spacing.js +1 -1
- package/lib/rules/symbol-description.js +1 -1
- package/lib/rules/template-curly-spacing.js +1 -1
- package/lib/rules/template-tag-spacing.js +1 -1
- package/lib/rules/unicode-bom.js +1 -1
- package/lib/rules/use-isnan.js +1 -1
- package/lib/rules/valid-jsdoc.js +1 -1
- package/lib/rules/valid-typeof.js +1 -1
- package/lib/rules/vars-on-top.js +1 -1
- package/lib/rules/wrap-iife.js +1 -1
- package/lib/rules/wrap-regex.js +1 -1
- package/lib/rules/yield-star-spacing.js +1 -1
- package/lib/rules/yoda.js +1 -1
- package/lib/unsupported-api.js +4 -0
- package/package.json +13 -10
@@ -17,7 +17,7 @@ module.exports = {
|
|
17
17
|
type: "layout",
|
18
18
|
|
19
19
|
docs: {
|
20
|
-
description: "
|
20
|
+
description: "Enforce consistent newlines before and after dots",
|
21
21
|
recommended: false,
|
22
22
|
url: "https://eslint.org/docs/rules/dot-location"
|
23
23
|
},
|
package/lib/rules/eol-last.js
CHANGED
@@ -14,7 +14,7 @@ module.exports = {
|
|
14
14
|
type: "layout",
|
15
15
|
|
16
16
|
docs: {
|
17
|
-
description: "
|
17
|
+
description: "Require or disallow newline at the end of files",
|
18
18
|
recommended: false,
|
19
19
|
url: "https://eslint.org/docs/rules/eol-last"
|
20
20
|
},
|
package/lib/rules/eqeqeq.js
CHANGED
@@ -15,7 +15,7 @@ module.exports = {
|
|
15
15
|
type: "problem",
|
16
16
|
|
17
17
|
docs: {
|
18
|
-
description: "
|
18
|
+
description: "Enforce \"for\" loop update clause moving the counter in the right direction.",
|
19
19
|
recommended: true,
|
20
20
|
url: "https://eslint.org/docs/rules/for-direction"
|
21
21
|
},
|
@@ -21,7 +21,7 @@ module.exports = {
|
|
21
21
|
type: "layout",
|
22
22
|
|
23
23
|
docs: {
|
24
|
-
description: "
|
24
|
+
description: "Require or disallow spacing between function identifiers and their invocations",
|
25
25
|
recommended: false,
|
26
26
|
url: "https://eslint.org/docs/rules/func-call-spacing"
|
27
27
|
},
|
@@ -74,7 +74,7 @@ module.exports = {
|
|
74
74
|
type: "suggestion",
|
75
75
|
|
76
76
|
docs: {
|
77
|
-
description: "
|
77
|
+
description: "Require function names to match the name of the variable or property to which they are assigned",
|
78
78
|
recommended: false,
|
79
79
|
url: "https://eslint.org/docs/rules/func-name-matching"
|
80
80
|
},
|
package/lib/rules/func-names.js
CHANGED
@@ -30,7 +30,7 @@ module.exports = {
|
|
30
30
|
type: "suggestion",
|
31
31
|
|
32
32
|
docs: {
|
33
|
-
description: "
|
33
|
+
description: "Require or disallow named `function` expressions",
|
34
34
|
recommended: false,
|
35
35
|
url: "https://eslint.org/docs/rules/func-names"
|
36
36
|
},
|
package/lib/rules/func-style.js
CHANGED
@@ -14,7 +14,7 @@ module.exports = {
|
|
14
14
|
type: "suggestion",
|
15
15
|
|
16
16
|
docs: {
|
17
|
-
description: "
|
17
|
+
description: "Enforce the consistent use of either `function` declarations or expressions",
|
18
18
|
recommended: false,
|
19
19
|
url: "https://eslint.org/docs/rules/func-style"
|
20
20
|
},
|
@@ -15,7 +15,7 @@ module.exports = {
|
|
15
15
|
type: "layout",
|
16
16
|
|
17
17
|
docs: {
|
18
|
-
description: "
|
18
|
+
description: "Enforce line breaks between arguments of a function call",
|
19
19
|
recommended: false,
|
20
20
|
url: "https://eslint.org/docs/rules/function-call-argument-newline"
|
21
21
|
},
|
@@ -20,7 +20,7 @@ module.exports = {
|
|
20
20
|
type: "layout",
|
21
21
|
|
22
22
|
docs: {
|
23
|
-
description: "
|
23
|
+
description: "Enforce consistent line breaks inside function parentheses",
|
24
24
|
recommended: false,
|
25
25
|
url: "https://eslint.org/docs/rules/function-paren-newline"
|
26
26
|
},
|
@@ -31,7 +31,7 @@ module.exports = {
|
|
31
31
|
type: "layout",
|
32
32
|
|
33
33
|
docs: {
|
34
|
-
description: "
|
34
|
+
description: "Enforce consistent spacing around `*` operators in generator functions",
|
35
35
|
recommended: false,
|
36
36
|
url: "https://eslint.org/docs/rules/generator-star-spacing"
|
37
37
|
},
|
@@ -58,7 +58,7 @@ module.exports = {
|
|
58
58
|
type: "suggestion",
|
59
59
|
|
60
60
|
docs: {
|
61
|
-
description: "
|
61
|
+
description: "Require `require()` calls to be placed at top-level module scope",
|
62
62
|
recommended: false,
|
63
63
|
url: "https://eslint.org/docs/rules/global-require"
|
64
64
|
},
|
@@ -96,7 +96,7 @@ module.exports = {
|
|
96
96
|
type: "suggestion",
|
97
97
|
|
98
98
|
docs: {
|
99
|
-
description: "
|
99
|
+
description: "Require grouped accessor pairs in object literals and classes",
|
100
100
|
recommended: false,
|
101
101
|
url: "https://eslint.org/docs/rules/grouped-accessor-pairs"
|
102
102
|
},
|
@@ -15,7 +15,7 @@ module.exports = {
|
|
15
15
|
type: "suggestion",
|
16
16
|
|
17
17
|
docs: {
|
18
|
-
description: "
|
18
|
+
description: "Require `for-in` loops to include an `if` statement",
|
19
19
|
recommended: false,
|
20
20
|
url: "https://eslint.org/docs/rules/guard-for-in"
|
21
21
|
},
|
package/lib/rules/id-denylist.js
CHANGED
package/lib/rules/id-length.js
CHANGED
@@ -16,7 +16,7 @@ module.exports = {
|
|
16
16
|
type: "suggestion",
|
17
17
|
|
18
18
|
docs: {
|
19
|
-
description: "
|
19
|
+
description: "Enforce minimum and maximum identifier lengths",
|
20
20
|
recommended: false,
|
21
21
|
url: "https://eslint.org/docs/rules/id-length"
|
22
22
|
},
|
package/lib/rules/id-match.js
CHANGED
@@ -15,7 +15,7 @@ module.exports = {
|
|
15
15
|
type: "suggestion",
|
16
16
|
|
17
17
|
docs: {
|
18
|
-
description: "
|
18
|
+
description: "Require identifiers to match a specified regular expression",
|
19
19
|
recommended: false,
|
20
20
|
url: "https://eslint.org/docs/rules/id-match"
|
21
21
|
},
|
@@ -15,7 +15,7 @@ module.exports = {
|
|
15
15
|
type: "layout",
|
16
16
|
|
17
17
|
docs: {
|
18
|
-
description: "
|
18
|
+
description: "Enforce the location of arrow function bodies",
|
19
19
|
recommended: false,
|
20
20
|
url: "https://eslint.org/docs/rules/implicit-arrow-linebreak"
|
21
21
|
},
|
package/lib/rules/indent.js
CHANGED
@@ -500,7 +500,7 @@ module.exports = {
|
|
500
500
|
type: "layout",
|
501
501
|
|
502
502
|
docs: {
|
503
|
-
description: "
|
503
|
+
description: "Enforce consistent indentation",
|
504
504
|
recommended: false,
|
505
505
|
url: "https://eslint.org/docs/rules/indent"
|
506
506
|
},
|
@@ -1211,7 +1211,7 @@ module.exports = {
|
|
1211
1211
|
}
|
1212
1212
|
},
|
1213
1213
|
|
1214
|
-
"DoWhileStatement, WhileStatement, ForInStatement, ForOfStatement": node => addBlocklessNodeIndent(node.body),
|
1214
|
+
"DoWhileStatement, WhileStatement, ForInStatement, ForOfStatement, WithStatement": node => addBlocklessNodeIndent(node.body),
|
1215
1215
|
|
1216
1216
|
ExportNamedDeclaration(node) {
|
1217
1217
|
if (node.declaration === null) {
|
@@ -1268,7 +1268,7 @@ module.exports = {
|
|
1268
1268
|
*
|
1269
1269
|
* Traversal into the node sets indentation of the semicolon, so we need to override it on exit.
|
1270
1270
|
*/
|
1271
|
-
":matches(DoWhileStatement, ForStatement, ForInStatement, ForOfStatement, IfStatement, WhileStatement):exit"(node) {
|
1271
|
+
":matches(DoWhileStatement, ForStatement, ForInStatement, ForOfStatement, IfStatement, WhileStatement, WithStatement):exit"(node) {
|
1272
1272
|
let nodesToCheck;
|
1273
1273
|
|
1274
1274
|
if (node.type === "IfStatement") {
|
@@ -48,7 +48,7 @@ module.exports = {
|
|
48
48
|
type: "suggestion",
|
49
49
|
|
50
50
|
docs: {
|
51
|
-
description: "
|
51
|
+
description: "Require or disallow initialization in variable declarations",
|
52
52
|
recommended: false,
|
53
53
|
url: "https://eslint.org/docs/rules/init-declarations"
|
54
54
|
},
|
package/lib/rules/jsx-quotes.js
CHANGED
@@ -42,7 +42,7 @@ module.exports = {
|
|
42
42
|
type: "layout",
|
43
43
|
|
44
44
|
docs: {
|
45
|
-
description: "
|
45
|
+
description: "Enforce the consistent use of either double or single quotes in JSX attributes",
|
46
46
|
recommended: false,
|
47
47
|
url: "https://eslint.org/docs/rules/jsx-quotes"
|
48
48
|
},
|
package/lib/rules/key-spacing.js
CHANGED
@@ -9,6 +9,9 @@
|
|
9
9
|
//------------------------------------------------------------------------------
|
10
10
|
|
11
11
|
const astUtils = require("./utils/ast-utils");
|
12
|
+
const GraphemeSplitter = require("grapheme-splitter");
|
13
|
+
|
14
|
+
const splitter = new GraphemeSplitter();
|
12
15
|
|
13
16
|
//------------------------------------------------------------------------------
|
14
17
|
// Helpers
|
@@ -139,7 +142,7 @@ module.exports = {
|
|
139
142
|
type: "layout",
|
140
143
|
|
141
144
|
docs: {
|
142
|
-
description: "
|
145
|
+
description: "Enforce consistent spacing between keys and values in object literal properties",
|
143
146
|
recommended: false,
|
144
147
|
url: "https://eslint.org/docs/rules/key-spacing"
|
145
148
|
},
|
@@ -508,7 +511,7 @@ module.exports = {
|
|
508
511
|
const startToken = sourceCode.getFirstToken(property);
|
509
512
|
const endToken = getLastTokenBeforeColon(property.key);
|
510
513
|
|
511
|
-
return
|
514
|
+
return splitter.countGraphemes(sourceCode.getText().slice(startToken.range[0], endToken.range[1]));
|
512
515
|
}
|
513
516
|
|
514
517
|
/**
|
@@ -67,7 +67,7 @@ module.exports = {
|
|
67
67
|
type: "layout",
|
68
68
|
|
69
69
|
docs: {
|
70
|
-
description: "
|
70
|
+
description: "Enforce consistent spacing before and after keywords",
|
71
71
|
recommended: false,
|
72
72
|
url: "https://eslint.org/docs/rules/keyword-spacing"
|
73
73
|
},
|
@@ -55,7 +55,7 @@ module.exports = {
|
|
55
55
|
type: "layout",
|
56
56
|
|
57
57
|
docs: {
|
58
|
-
description: "
|
58
|
+
description: "Require empty lines around comments",
|
59
59
|
recommended: false,
|
60
60
|
url: "https://eslint.org/docs/rules/lines-around-comment"
|
61
61
|
},
|
@@ -231,9 +231,15 @@ module.exports = {
|
|
231
231
|
const parent = getParentNodeOfToken(token);
|
232
232
|
|
233
233
|
if (parent && isParentNodeType(parent, nodeType)) {
|
234
|
-
|
235
|
-
|
236
|
-
|
234
|
+
let parentStartNodeOrToken = parent;
|
235
|
+
|
236
|
+
if (parent.type === "StaticBlock") {
|
237
|
+
parentStartNodeOrToken = sourceCode.getFirstToken(parent, { skip: 1 }); // opening brace of the static block
|
238
|
+
} else if (parent.type === "SwitchStatement") {
|
239
|
+
parentStartNodeOrToken = sourceCode.getTokenAfter(parent.discriminant, {
|
240
|
+
filter: astUtils.isOpeningBraceToken
|
241
|
+
}); // opening brace of the switch statement
|
242
|
+
}
|
237
243
|
|
238
244
|
return token.loc.start.line - parentStartNodeOrToken.loc.start.line === 1;
|
239
245
|
}
|
@@ -264,7 +270,8 @@ module.exports = {
|
|
264
270
|
isCommentAtParentStart(token, "ClassBody") ||
|
265
271
|
isCommentAtParentStart(token, "BlockStatement") ||
|
266
272
|
isCommentAtParentStart(token, "StaticBlock") ||
|
267
|
-
isCommentAtParentStart(token, "SwitchCase")
|
273
|
+
isCommentAtParentStart(token, "SwitchCase") ||
|
274
|
+
isCommentAtParentStart(token, "SwitchStatement")
|
268
275
|
);
|
269
276
|
}
|
270
277
|
|
@@ -18,7 +18,7 @@ module.exports = {
|
|
18
18
|
type: "layout",
|
19
19
|
|
20
20
|
docs: {
|
21
|
-
description: "
|
21
|
+
description: "Require or disallow newlines around directives",
|
22
22
|
recommended: false,
|
23
23
|
url: "https://eslint.org/docs/rules/lines-around-directive"
|
24
24
|
},
|
@@ -20,7 +20,7 @@ module.exports = {
|
|
20
20
|
type: "layout",
|
21
21
|
|
22
22
|
docs: {
|
23
|
-
description: "
|
23
|
+
description: "Require or disallow an empty line between class members",
|
24
24
|
recommended: false,
|
25
25
|
url: "https://eslint.org/docs/rules/lines-between-class-members"
|
26
26
|
},
|
@@ -19,7 +19,7 @@ module.exports = {
|
|
19
19
|
type: "suggestion",
|
20
20
|
|
21
21
|
docs: {
|
22
|
-
description: "
|
22
|
+
description: "Enforce a maximum number of classes per file",
|
23
23
|
recommended: false,
|
24
24
|
url: "https://eslint.org/docs/rules/max-classes-per-file"
|
25
25
|
},
|
package/lib/rules/max-depth.js
CHANGED
@@ -15,7 +15,7 @@ module.exports = {
|
|
15
15
|
type: "suggestion",
|
16
16
|
|
17
17
|
docs: {
|
18
|
-
description: "
|
18
|
+
description: "Enforce a maximum depth that blocks can be nested",
|
19
19
|
recommended: false,
|
20
20
|
url: "https://eslint.org/docs/rules/max-depth"
|
21
21
|
},
|
package/lib/rules/max-len.js
CHANGED
@@ -71,7 +71,7 @@ module.exports = {
|
|
71
71
|
type: "suggestion",
|
72
72
|
|
73
73
|
docs: {
|
74
|
-
description: "
|
74
|
+
description: "Enforce a maximum number of lines of code in a function",
|
75
75
|
recommended: false,
|
76
76
|
url: "https://eslint.org/docs/rules/max-lines-per-function"
|
77
77
|
},
|
package/lib/rules/max-lines.js
CHANGED
@@ -15,7 +15,7 @@ module.exports = {
|
|
15
15
|
type: "suggestion",
|
16
16
|
|
17
17
|
docs: {
|
18
|
-
description: "
|
18
|
+
description: "Enforce a maximum depth that callbacks can be nested",
|
19
19
|
recommended: false,
|
20
20
|
url: "https://eslint.org/docs/rules/max-nested-callbacks"
|
21
21
|
},
|
package/lib/rules/max-params.js
CHANGED
@@ -22,7 +22,7 @@ module.exports = {
|
|
22
22
|
type: "suggestion",
|
23
23
|
|
24
24
|
docs: {
|
25
|
-
description: "
|
25
|
+
description: "Enforce a maximum number of parameters in function definitions",
|
26
26
|
recommended: false,
|
27
27
|
url: "https://eslint.org/docs/rules/max-params"
|
28
28
|
},
|
@@ -20,7 +20,7 @@ module.exports = {
|
|
20
20
|
type: "layout",
|
21
21
|
|
22
22
|
docs: {
|
23
|
-
description: "
|
23
|
+
description: "Enforce a maximum number of statements allowed per line",
|
24
24
|
recommended: false,
|
25
25
|
url: "https://eslint.org/docs/rules/max-statements-per-line"
|
26
26
|
},
|
@@ -22,7 +22,7 @@ module.exports = {
|
|
22
22
|
type: "suggestion",
|
23
23
|
|
24
24
|
docs: {
|
25
|
-
description: "
|
25
|
+
description: "Enforce a maximum number of statements allowed in function blocks",
|
26
26
|
recommended: false,
|
27
27
|
url: "https://eslint.org/docs/rules/max-statements"
|
28
28
|
},
|
@@ -16,7 +16,7 @@ module.exports = {
|
|
16
16
|
type: "suggestion",
|
17
17
|
|
18
18
|
docs: {
|
19
|
-
description: "
|
19
|
+
description: "Enforce a particular style for multiline comments",
|
20
20
|
recommended: false,
|
21
21
|
url: "https://eslint.org/docs/rules/multiline-comment-style"
|
22
22
|
},
|
@@ -17,7 +17,7 @@ module.exports = {
|
|
17
17
|
type: "layout",
|
18
18
|
|
19
19
|
docs: {
|
20
|
-
description: "
|
20
|
+
description: "Enforce newlines between operands of ternary expressions",
|
21
21
|
recommended: false,
|
22
22
|
url: "https://eslint.org/docs/rules/multiline-ternary"
|
23
23
|
},
|
package/lib/rules/new-cap.js
CHANGED
@@ -82,7 +82,7 @@ module.exports = {
|
|
82
82
|
type: "suggestion",
|
83
83
|
|
84
84
|
docs: {
|
85
|
-
description: "
|
85
|
+
description: "Require constructor names to begin with a capital letter",
|
86
86
|
recommended: false,
|
87
87
|
url: "https://eslint.org/docs/rules/new-cap"
|
88
88
|
},
|
package/lib/rules/new-parens.js
CHANGED
@@ -25,7 +25,7 @@ module.exports = {
|
|
25
25
|
type: "layout",
|
26
26
|
|
27
27
|
docs: {
|
28
|
-
description: "
|
28
|
+
description: "Enforce or disallow parentheses when invoking a constructor with no arguments",
|
29
29
|
recommended: false,
|
30
30
|
url: "https://eslint.org/docs/rules/new-parens"
|
31
31
|
},
|
@@ -22,7 +22,7 @@ module.exports = {
|
|
22
22
|
type: "layout",
|
23
23
|
|
24
24
|
docs: {
|
25
|
-
description: "
|
25
|
+
description: "Require or disallow an empty line after variable declarations",
|
26
26
|
recommended: false,
|
27
27
|
url: "https://eslint.org/docs/rules/newline-after-var"
|
28
28
|
},
|
@@ -15,7 +15,7 @@ module.exports = {
|
|
15
15
|
type: "layout",
|
16
16
|
|
17
17
|
docs: {
|
18
|
-
description: "
|
18
|
+
description: "Require an empty line before `return` statements",
|
19
19
|
recommended: false,
|
20
20
|
url: "https://eslint.org/docs/rules/newline-before-return"
|
21
21
|
},
|
@@ -18,7 +18,7 @@ module.exports = {
|
|
18
18
|
type: "layout",
|
19
19
|
|
20
20
|
docs: {
|
21
|
-
description: "
|
21
|
+
description: "Require a newline after each call in a method chain",
|
22
22
|
recommended: false,
|
23
23
|
url: "https://eslint.org/docs/rules/newline-per-chained-call"
|
24
24
|
},
|
package/lib/rules/no-alert.js
CHANGED
@@ -88,7 +88,7 @@ module.exports = {
|
|
88
88
|
type: "suggestion",
|
89
89
|
|
90
90
|
docs: {
|
91
|
-
description: "
|
91
|
+
description: "Disallow the use of `alert`, `confirm`, and `prompt`",
|
92
92
|
recommended: false,
|
93
93
|
url: "https://eslint.org/docs/rules/no-alert"
|
94
94
|
},
|
@@ -14,7 +14,7 @@ module.exports = {
|
|
14
14
|
type: "problem",
|
15
15
|
|
16
16
|
docs: {
|
17
|
-
description: "
|
17
|
+
description: "Disallow using an async function as a Promise executor",
|
18
18
|
recommended: true,
|
19
19
|
url: "https://eslint.org/docs/rules/no-async-promise-executor"
|
20
20
|
},
|
package/lib/rules/no-bitwise.js
CHANGED