eslint 8.38.0 → 8.40.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 -7
- package/lib/config/flat-config-schema.js +57 -35
- package/lib/eslint/flat-eslint.js +56 -16
- package/lib/linter/linter.js +7 -35
- package/lib/rules/accessor-pairs.js +2 -2
- package/lib/rules/array-bracket-newline.js +2 -2
- package/lib/rules/array-bracket-spacing.js +2 -2
- package/lib/rules/array-callback-return.js +2 -2
- package/lib/rules/array-element-newline.js +2 -2
- package/lib/rules/arrow-body-style.js +2 -2
- package/lib/rules/arrow-parens.js +2 -2
- package/lib/rules/arrow-spacing.js +2 -2
- package/lib/rules/block-scoped-var.js +2 -2
- package/lib/rules/block-spacing.js +2 -2
- package/lib/rules/brace-style.js +2 -2
- package/lib/rules/callback-return.js +2 -2
- package/lib/rules/camelcase.js +2 -2
- package/lib/rules/capitalized-comments.js +2 -2
- package/lib/rules/class-methods-use-this.js +2 -2
- package/lib/rules/comma-dangle.js +2 -2
- package/lib/rules/comma-spacing.js +2 -2
- package/lib/rules/comma-style.js +2 -2
- package/lib/rules/complexity.js +1 -1
- package/lib/rules/computed-property-spacing.js +2 -2
- package/lib/rules/consistent-return.js +3 -3
- package/lib/rules/consistent-this.js +2 -2
- package/lib/rules/constructor-super.js +1 -1
- package/lib/rules/curly.js +2 -2
- package/lib/rules/default-case-last.js +1 -1
- package/lib/rules/default-case.js +2 -2
- package/lib/rules/default-param-last.js +1 -1
- package/lib/rules/dot-location.js +2 -2
- package/lib/rules/dot-notation.js +2 -2
- package/lib/rules/eol-last.js +2 -2
- package/lib/rules/eqeqeq.js +2 -2
- package/lib/rules/for-direction.js +1 -1
- package/lib/rules/func-call-spacing.js +2 -2
- package/lib/rules/func-name-matching.js +1 -1
- package/lib/rules/func-names.js +2 -2
- package/lib/rules/func-style.js +1 -1
- package/lib/rules/function-call-argument-newline.js +2 -2
- package/lib/rules/function-paren-newline.js +2 -2
- package/lib/rules/generator-star-spacing.js +2 -2
- package/lib/rules/getter-return.js +2 -2
- package/lib/rules/global-require.js +2 -2
- package/lib/rules/grouped-accessor-pairs.js +2 -2
- package/lib/rules/guard-for-in.js +1 -1
- package/lib/rules/handle-callback-err.js +2 -2
- package/lib/rules/id-blacklist.js +2 -2
- package/lib/rules/id-denylist.js +2 -2
- package/lib/rules/id-length.js +3 -36
- package/lib/rules/id-match.js +2 -2
- package/lib/rules/implicit-arrow-linebreak.js +2 -2
- package/lib/rules/indent-legacy.js +2 -2
- package/lib/rules/indent.js +2 -2
- package/lib/rules/init-declarations.js +1 -1
- package/lib/rules/jsx-quotes.js +1 -1
- package/lib/rules/key-spacing.js +4 -10
- package/lib/rules/keyword-spacing.js +2 -2
- package/lib/rules/line-comment-position.js +2 -2
- package/lib/rules/linebreak-style.js +2 -2
- package/lib/rules/lines-around-comment.js +2 -2
- package/lib/rules/lines-around-directive.js +2 -2
- package/lib/rules/lines-between-class-members.js +2 -2
- package/lib/rules/logical-assignment-operators.js +2 -2
- package/lib/rules/max-classes-per-file.js +1 -1
- package/lib/rules/max-depth.js +1 -1
- package/lib/rules/max-len.js +2 -2
- package/lib/rules/max-lines-per-function.js +2 -2
- package/lib/rules/max-lines.js +2 -2
- package/lib/rules/max-nested-callbacks.js +1 -1
- package/lib/rules/max-params.js +2 -2
- package/lib/rules/max-statements-per-line.js +2 -2
- package/lib/rules/max-statements.js +1 -1
- package/lib/rules/multiline-comment-style.js +2 -2
- package/lib/rules/multiline-ternary.js +2 -2
- package/lib/rules/new-cap.js +2 -2
- package/lib/rules/new-parens.js +2 -2
- package/lib/rules/newline-after-var.js +2 -2
- package/lib/rules/newline-before-return.js +2 -2
- package/lib/rules/newline-per-chained-call.js +2 -2
- package/lib/rules/no-alert.js +2 -2
- package/lib/rules/no-array-constructor.js +1 -1
- package/lib/rules/no-async-promise-executor.js +2 -2
- 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 +2 -2
- package/lib/rules/no-class-assign.js +2 -2
- package/lib/rules/no-compare-neg-zero.js +1 -1
- package/lib/rules/no-cond-assign.js +2 -2
- package/lib/rules/no-confusing-arrow.js +2 -2
- package/lib/rules/no-console.js +2 -2
- package/lib/rules/no-const-assign.js +2 -2
- package/lib/rules/no-constant-binary-expression.js +2 -2
- package/lib/rules/no-constant-condition.js +2 -2
- 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 +2 -2
- package/lib/rules/no-dupe-args.js +2 -2
- package/lib/rules/no-dupe-class-members.js +1 -1
- package/lib/rules/no-dupe-else-if.js +2 -2
- package/lib/rules/no-dupe-keys.js +1 -1
- package/lib/rules/no-duplicate-case.js +2 -2
- package/lib/rules/no-duplicate-imports.js +1 -1
- package/lib/rules/no-else-return.js +2 -2
- package/lib/rules/no-empty-character-class.js +1 -1
- package/lib/rules/no-empty-function.js +2 -2
- package/lib/rules/no-empty-pattern.js +1 -1
- package/lib/rules/no-empty-static-block.js +2 -2
- package/lib/rules/no-empty.js +2 -2
- package/lib/rules/no-eq-null.js +1 -1
- package/lib/rules/no-eval.js +2 -2
- package/lib/rules/no-ex-assign.js +2 -2
- package/lib/rules/no-extend-native.js +2 -2
- package/lib/rules/no-extra-bind.js +2 -2
- package/lib/rules/no-extra-boolean-cast.js +2 -2
- package/lib/rules/no-extra-label.js +2 -2
- package/lib/rules/no-extra-parens.js +2 -2
- package/lib/rules/no-extra-semi.js +3 -3
- package/lib/rules/no-fallthrough.js +3 -3
- package/lib/rules/no-floating-decimal.js +2 -2
- package/lib/rules/no-func-assign.js +2 -2
- package/lib/rules/no-global-assign.js +2 -2
- package/lib/rules/no-implicit-coercion.js +2 -2
- package/lib/rules/no-implicit-globals.js +2 -2
- package/lib/rules/no-implied-eval.js +2 -2
- package/lib/rules/no-import-assign.js +2 -2
- package/lib/rules/no-inline-comments.js +2 -2
- 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 +2 -2
- package/lib/rules/no-irregular-whitespace.js +2 -2
- package/lib/rules/no-iterator.js +1 -1
- package/lib/rules/no-label-var.js +2 -2
- package/lib/rules/no-labels.js +1 -1
- package/lib/rules/no-lone-blocks.js +3 -3
- package/lib/rules/no-lonely-if.js +4 -5
- package/lib/rules/no-loop-func.js +2 -2
- 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 +2 -2
- package/lib/rules/no-mixed-operators.js +2 -2
- package/lib/rules/no-mixed-requires.js +1 -1
- package/lib/rules/no-mixed-spaces-and-tabs.js +2 -2
- package/lib/rules/no-multi-assign.js +1 -1
- package/lib/rules/no-multi-spaces.js +2 -2
- package/lib/rules/no-multi-str.js +1 -1
- package/lib/rules/no-multiple-empty-lines.js +2 -2
- package/lib/rules/no-native-reassign.js +2 -2
- 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 +2 -2
- package/lib/rules/no-new-native-nonconstructor.js +2 -2
- package/lib/rules/no-new-object.js +2 -2
- package/lib/rules/no-new-require.js +1 -1
- package/lib/rules/no-new-symbol.js +2 -2
- 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 +2 -2
- package/lib/rules/no-obj-calls.js +2 -2
- package/lib/rules/no-octal-escape.js +1 -1
- package/lib/rules/no-octal.js +1 -1
- package/lib/rules/no-param-reassign.js +2 -2
- 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 +2 -2
- package/lib/rules/no-proto.js +1 -1
- package/lib/rules/no-prototype-builtins.js +1 -1
- package/lib/rules/no-redeclare.js +2 -2
- package/lib/rules/no-regex-spaces.js +2 -2
- package/lib/rules/no-restricted-exports.js +2 -2
- package/lib/rules/no-restricted-globals.js +2 -2
- package/lib/rules/no-restricted-imports.js +2 -2
- 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 +2 -2
- package/lib/rules/no-return-await.js +3 -3
- package/lib/rules/no-script-url.js +1 -1
- package/lib/rules/no-self-assign.js +2 -2
- package/lib/rules/no-self-compare.js +2 -2
- package/lib/rules/no-sequences.js +2 -2
- package/lib/rules/no-setter-return.js +2 -2
- package/lib/rules/no-shadow-restricted-names.js +2 -2
- package/lib/rules/no-shadow.js +2 -2
- package/lib/rules/no-spaced-func.js +2 -2
- package/lib/rules/no-sparse-arrays.js +1 -1
- package/lib/rules/no-sync.js +1 -1
- package/lib/rules/no-tabs.js +2 -2
- 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 +2 -2
- package/lib/rules/no-undef-init.js +2 -2
- package/lib/rules/no-undef.js +2 -2
- package/lib/rules/no-undefined.js +2 -2
- package/lib/rules/no-underscore-dangle.js +2 -2
- package/lib/rules/no-unexpected-multiline.js +2 -2
- package/lib/rules/no-unmodified-loop-condition.js +2 -2
- package/lib/rules/no-unneeded-ternary.js +2 -2
- package/lib/rules/no-unreachable-loop.js +1 -1
- package/lib/rules/no-unreachable.js +2 -2
- package/lib/rules/no-unsafe-finally.js +1 -1
- package/lib/rules/no-unsafe-negation.js +2 -2
- package/lib/rules/no-unsafe-optional-chaining.js +1 -1
- package/lib/rules/no-unused-expressions.js +6 -8
- package/lib/rules/no-unused-labels.js +2 -2
- package/lib/rules/no-unused-private-class-members.js +1 -1
- package/lib/rules/no-unused-vars.js +2 -2
- package/lib/rules/no-use-before-define.js +2 -2
- package/lib/rules/no-useless-backreference.js +2 -2
- package/lib/rules/no-useless-call.js +2 -2
- package/lib/rules/no-useless-catch.js +1 -1
- package/lib/rules/no-useless-computed-key.js +2 -2
- package/lib/rules/no-useless-concat.js +2 -2
- package/lib/rules/no-useless-constructor.js +1 -1
- package/lib/rules/no-useless-escape.js +2 -2
- package/lib/rules/no-useless-rename.js +2 -2
- package/lib/rules/no-useless-return.js +2 -2
- package/lib/rules/no-var.js +2 -2
- package/lib/rules/no-void.js +1 -1
- package/lib/rules/no-warning-comments.js +2 -2
- package/lib/rules/no-whitespace-before-property.js +2 -2
- package/lib/rules/no-with.js +1 -1
- package/lib/rules/nonblock-statement-body-position.js +2 -2
- package/lib/rules/object-curly-newline.js +2 -2
- package/lib/rules/object-curly-spacing.js +4 -4
- package/lib/rules/object-property-newline.js +2 -2
- package/lib/rules/object-shorthand.js +2 -2
- package/lib/rules/one-var-declaration-per-line.js +1 -1
- package/lib/rules/one-var.js +2 -2
- package/lib/rules/operator-assignment.js +2 -2
- package/lib/rules/operator-linebreak.js +2 -2
- package/lib/rules/padded-blocks.js +2 -2
- package/lib/rules/padding-line-between-statements.js +4 -4
- package/lib/rules/prefer-arrow-callback.js +2 -2
- package/lib/rules/prefer-const.js +2 -2
- package/lib/rules/prefer-destructuring.js +2 -2
- package/lib/rules/prefer-exponentiation-operator.js +2 -2
- package/lib/rules/prefer-named-capture-group.js +2 -2
- package/lib/rules/prefer-numeric-literals.js +2 -2
- package/lib/rules/prefer-object-has-own.js +2 -2
- package/lib/rules/prefer-object-spread.js +2 -3
- package/lib/rules/prefer-promise-reject-errors.js +2 -2
- package/lib/rules/prefer-reflect.js +1 -1
- package/lib/rules/prefer-regex-literals.js +2 -2
- package/lib/rules/prefer-rest-params.js +2 -2
- package/lib/rules/prefer-spread.js +2 -2
- package/lib/rules/prefer-template.js +2 -2
- package/lib/rules/quote-props.js +2 -2
- package/lib/rules/quotes.js +2 -2
- package/lib/rules/radix.js +2 -2
- package/lib/rules/require-atomic-updates.js +2 -2
- package/lib/rules/require-await.js +2 -2
- package/lib/rules/require-jsdoc.js +2 -2
- package/lib/rules/require-unicode-regexp.js +2 -2
- package/lib/rules/require-yield.js +1 -1
- package/lib/rules/rest-spread-spacing.js +2 -2
- package/lib/rules/semi-spacing.js +2 -2
- package/lib/rules/semi-style.js +2 -2
- package/lib/rules/semi.js +30 -5
- package/lib/rules/sort-imports.js +2 -2
- package/lib/rules/sort-keys.js +2 -2
- package/lib/rules/sort-vars.js +2 -2
- package/lib/rules/space-before-blocks.js +2 -2
- package/lib/rules/space-before-function-paren.js +2 -2
- package/lib/rules/space-in-parens.js +2 -2
- package/lib/rules/space-infix-ops.js +2 -2
- package/lib/rules/space-unary-ops.js +2 -2
- package/lib/rules/spaced-comment.js +2 -2
- package/lib/rules/strict.js +1 -1
- package/lib/rules/switch-colon-spacing.js +2 -2
- package/lib/rules/symbol-description.js +2 -2
- package/lib/rules/template-curly-spacing.js +2 -2
- package/lib/rules/template-tag-spacing.js +2 -2
- package/lib/rules/unicode-bom.js +2 -2
- package/lib/rules/use-isnan.js +1 -1
- package/lib/rules/valid-jsdoc.js +2 -2
- package/lib/rules/valid-typeof.js +3 -3
- package/lib/rules/vars-on-top.js +1 -1
- package/lib/rules/wrap-iife.js +2 -2
- package/lib/rules/wrap-regex.js +4 -5
- package/lib/rules/yield-star-spacing.js +2 -2
- package/lib/rules/yoda.js +3 -3
- package/lib/shared/string-utils.js +39 -1
- package/lib/source-code/source-code.js +47 -4
- package/lib/source-code/token-store/utils.js +21 -16
- package/messages/invalid-rule-options.js +17 -0
- package/messages/invalid-rule-severity.js +13 -0
- package/messages/shared.js +18 -0
- package/package.json +6 -6
@@ -41,7 +41,7 @@ module.exports = {
|
|
41
41
|
docs: {
|
42
42
|
description: "Disallow multiple spaces in regular expressions",
|
43
43
|
recommended: true,
|
44
|
-
url: "https://eslint.org/docs/rules/no-regex-spaces"
|
44
|
+
url: "https://eslint.org/docs/latest/rules/no-regex-spaces"
|
45
45
|
},
|
46
46
|
|
47
47
|
schema: [],
|
@@ -54,7 +54,7 @@ module.exports = {
|
|
54
54
|
|
55
55
|
create(context) {
|
56
56
|
|
57
|
-
const sourceCode = context.
|
57
|
+
const sourceCode = context.sourceCode;
|
58
58
|
|
59
59
|
/**
|
60
60
|
* Validate regular expression
|
@@ -23,7 +23,7 @@ module.exports = {
|
|
23
23
|
docs: {
|
24
24
|
description: "Disallow specified names in exports",
|
25
25
|
recommended: false,
|
26
|
-
url: "https://eslint.org/docs/rules/no-restricted-exports"
|
26
|
+
url: "https://eslint.org/docs/latest/rules/no-restricted-exports"
|
27
27
|
},
|
28
28
|
|
29
29
|
schema: [{
|
@@ -99,7 +99,7 @@ module.exports = {
|
|
99
99
|
|
100
100
|
const restrictedNames = new Set(context.options[0] && context.options[0].restrictedNamedExports);
|
101
101
|
const restrictDefaultExports = context.options[0] && context.options[0].restrictDefaultExports;
|
102
|
-
const sourceCode = context.
|
102
|
+
const sourceCode = context.sourceCode;
|
103
103
|
|
104
104
|
/**
|
105
105
|
* Checks and reports given exported name.
|
@@ -16,7 +16,7 @@ module.exports = {
|
|
16
16
|
docs: {
|
17
17
|
description: "Disallow specified global variables",
|
18
18
|
recommended: false,
|
19
|
-
url: "https://eslint.org/docs/rules/no-restricted-globals"
|
19
|
+
url: "https://eslint.org/docs/latest/rules/no-restricted-globals"
|
20
20
|
},
|
21
21
|
|
22
22
|
schema: {
|
@@ -50,7 +50,7 @@ module.exports = {
|
|
50
50
|
|
51
51
|
create(context) {
|
52
52
|
|
53
|
-
const sourceCode = context.
|
53
|
+
const sourceCode = context.sourceCode;
|
54
54
|
|
55
55
|
// If no globals are restricted, we don't need to do anything
|
56
56
|
if (context.options.length === 0) {
|
@@ -98,7 +98,7 @@ module.exports = {
|
|
98
98
|
docs: {
|
99
99
|
description: "Disallow specified modules when loaded by `import`",
|
100
100
|
recommended: false,
|
101
|
-
url: "https://eslint.org/docs/rules/no-restricted-imports"
|
101
|
+
url: "https://eslint.org/docs/latest/rules/no-restricted-imports"
|
102
102
|
},
|
103
103
|
|
104
104
|
messages: {
|
@@ -147,7 +147,7 @@ module.exports = {
|
|
147
147
|
},
|
148
148
|
|
149
149
|
create(context) {
|
150
|
-
const sourceCode = context.
|
150
|
+
const sourceCode = context.sourceCode;
|
151
151
|
const options = Array.isArray(context.options) ? context.options : [];
|
152
152
|
const isPathAndPatternsObject =
|
153
153
|
typeof options[0] === "object" &&
|
@@ -51,7 +51,7 @@ module.exports = {
|
|
51
51
|
docs: {
|
52
52
|
description: "Disallow specified modules when loaded by `require`",
|
53
53
|
recommended: false,
|
54
|
-
url: "https://eslint.org/docs/rules/no-restricted-modules"
|
54
|
+
url: "https://eslint.org/docs/latest/rules/no-restricted-modules"
|
55
55
|
},
|
56
56
|
|
57
57
|
schema: {
|
@@ -19,7 +19,7 @@ module.exports = {
|
|
19
19
|
docs: {
|
20
20
|
description: "Disallow certain properties on certain objects",
|
21
21
|
recommended: false,
|
22
|
-
url: "https://eslint.org/docs/rules/no-restricted-properties"
|
22
|
+
url: "https://eslint.org/docs/latest/rules/no-restricted-properties"
|
23
23
|
},
|
24
24
|
|
25
25
|
schema: {
|
@@ -28,7 +28,7 @@ module.exports = {
|
|
28
28
|
docs: {
|
29
29
|
description: "Disallow assignment operators in `return` statements",
|
30
30
|
recommended: false,
|
31
|
-
url: "https://eslint.org/docs/rules/no-return-assign"
|
31
|
+
url: "https://eslint.org/docs/latest/rules/no-return-assign"
|
32
32
|
},
|
33
33
|
|
34
34
|
schema: [
|
@@ -45,7 +45,7 @@ module.exports = {
|
|
45
45
|
|
46
46
|
create(context) {
|
47
47
|
const always = (context.options[0] || "except-parens") !== "except-parens";
|
48
|
-
const sourceCode = context.
|
48
|
+
const sourceCode = context.sourceCode;
|
49
49
|
|
50
50
|
return {
|
51
51
|
AssignmentExpression(node) {
|
@@ -21,7 +21,7 @@ module.exports = {
|
|
21
21
|
|
22
22
|
recommended: false,
|
23
23
|
|
24
|
-
url: "https://eslint.org/docs/rules/no-return-await"
|
24
|
+
url: "https://eslint.org/docs/latest/rules/no-return-await"
|
25
25
|
},
|
26
26
|
|
27
27
|
fixable: null,
|
@@ -44,14 +44,14 @@ module.exports = {
|
|
44
44
|
*/
|
45
45
|
function reportUnnecessaryAwait(node) {
|
46
46
|
context.report({
|
47
|
-
node: context.
|
47
|
+
node: context.sourceCode.getFirstToken(node),
|
48
48
|
loc: node.loc,
|
49
49
|
messageId: "redundantUseOfAwait",
|
50
50
|
suggest: [
|
51
51
|
{
|
52
52
|
messageId: "removeAwait",
|
53
53
|
fix(fixer) {
|
54
|
-
const sourceCode = context.
|
54
|
+
const sourceCode = context.sourceCode;
|
55
55
|
const [awaitToken, tokenAfterAwait] = sourceCode.getFirstTokens(node, 2);
|
56
56
|
|
57
57
|
const areAwaitAndAwaitedExpressionOnTheSameLine = awaitToken.loc.start.line === tokenAfterAwait.loc.start.line;
|
@@ -132,7 +132,7 @@ module.exports = {
|
|
132
132
|
docs: {
|
133
133
|
description: "Disallow assignments where both sides are exactly the same",
|
134
134
|
recommended: true,
|
135
|
-
url: "https://eslint.org/docs/rules/no-self-assign"
|
135
|
+
url: "https://eslint.org/docs/latest/rules/no-self-assign"
|
136
136
|
},
|
137
137
|
|
138
138
|
schema: [
|
@@ -154,7 +154,7 @@ module.exports = {
|
|
154
154
|
},
|
155
155
|
|
156
156
|
create(context) {
|
157
|
-
const sourceCode = context.
|
157
|
+
const sourceCode = context.sourceCode;
|
158
158
|
const [{ props = true } = {}] = context.options;
|
159
159
|
|
160
160
|
/**
|
@@ -18,7 +18,7 @@ module.exports = {
|
|
18
18
|
docs: {
|
19
19
|
description: "Disallow comparisons where both sides are exactly the same",
|
20
20
|
recommended: false,
|
21
|
-
url: "https://eslint.org/docs/rules/no-self-compare"
|
21
|
+
url: "https://eslint.org/docs/latest/rules/no-self-compare"
|
22
22
|
},
|
23
23
|
|
24
24
|
schema: [],
|
@@ -29,7 +29,7 @@ module.exports = {
|
|
29
29
|
},
|
30
30
|
|
31
31
|
create(context) {
|
32
|
-
const sourceCode = context.
|
32
|
+
const sourceCode = context.sourceCode;
|
33
33
|
|
34
34
|
/**
|
35
35
|
* Determines whether two nodes are composed of the same tokens.
|
@@ -31,7 +31,7 @@ module.exports = {
|
|
31
31
|
docs: {
|
32
32
|
description: "Disallow comma operators",
|
33
33
|
recommended: false,
|
34
|
-
url: "https://eslint.org/docs/rules/no-sequences"
|
34
|
+
url: "https://eslint.org/docs/latest/rules/no-sequences"
|
35
35
|
},
|
36
36
|
|
37
37
|
schema: [{
|
@@ -51,7 +51,7 @@ module.exports = {
|
|
51
51
|
|
52
52
|
create(context) {
|
53
53
|
const options = Object.assign({}, DEFAULT_OPTIONS, context.options[0]);
|
54
|
-
const sourceCode = context.
|
54
|
+
const sourceCode = context.sourceCode;
|
55
55
|
|
56
56
|
/**
|
57
57
|
* Parts of the grammar that are required to have parens.
|
@@ -144,7 +144,7 @@ module.exports = {
|
|
144
144
|
docs: {
|
145
145
|
description: "Disallow returning values from setters",
|
146
146
|
recommended: true,
|
147
|
-
url: "https://eslint.org/docs/rules/no-setter-return"
|
147
|
+
url: "https://eslint.org/docs/latest/rules/no-setter-return"
|
148
148
|
},
|
149
149
|
|
150
150
|
schema: [],
|
@@ -156,7 +156,7 @@ module.exports = {
|
|
156
156
|
|
157
157
|
create(context) {
|
158
158
|
let funcInfo = null;
|
159
|
-
const sourceCode = context.
|
159
|
+
const sourceCode = context.sourceCode;
|
160
160
|
|
161
161
|
/**
|
162
162
|
* Creates and pushes to the stack a function info object for the given function node.
|
@@ -29,7 +29,7 @@ module.exports = {
|
|
29
29
|
docs: {
|
30
30
|
description: "Disallow identifiers from shadowing restricted names",
|
31
31
|
recommended: true,
|
32
|
-
url: "https://eslint.org/docs/rules/no-shadow-restricted-names"
|
32
|
+
url: "https://eslint.org/docs/latest/rules/no-shadow-restricted-names"
|
33
33
|
},
|
34
34
|
|
35
35
|
schema: [],
|
@@ -43,7 +43,7 @@ module.exports = {
|
|
43
43
|
|
44
44
|
|
45
45
|
const RESTRICTED = new Set(["undefined", "NaN", "Infinity", "arguments", "eval"]);
|
46
|
-
const sourceCode = context.
|
46
|
+
const sourceCode = context.sourceCode;
|
47
47
|
|
48
48
|
return {
|
49
49
|
"VariableDeclaration, :function, CatchClause"(node) {
|
package/lib/rules/no-shadow.js
CHANGED
@@ -32,7 +32,7 @@ module.exports = {
|
|
32
32
|
docs: {
|
33
33
|
description: "Disallow variable declarations from shadowing variables declared in the outer scope",
|
34
34
|
recommended: false,
|
35
|
-
url: "https://eslint.org/docs/rules/no-shadow"
|
35
|
+
url: "https://eslint.org/docs/latest/rules/no-shadow"
|
36
36
|
},
|
37
37
|
|
38
38
|
schema: [
|
@@ -67,7 +67,7 @@ module.exports = {
|
|
67
67
|
allow: (context.options[0] && context.options[0].allow) || [],
|
68
68
|
ignoreOnInitialization: context.options[0] && context.options[0].ignoreOnInitialization
|
69
69
|
};
|
70
|
-
const sourceCode = context.
|
70
|
+
const sourceCode = context.sourceCode;
|
71
71
|
|
72
72
|
/**
|
73
73
|
* Checks whether or not a given location is inside of the range of a given node.
|
@@ -18,7 +18,7 @@ module.exports = {
|
|
18
18
|
docs: {
|
19
19
|
description: "Disallow spacing between function identifiers and their applications (deprecated)",
|
20
20
|
recommended: false,
|
21
|
-
url: "https://eslint.org/docs/rules/no-spaced-func"
|
21
|
+
url: "https://eslint.org/docs/latest/rules/no-spaced-func"
|
22
22
|
},
|
23
23
|
|
24
24
|
deprecated: true,
|
@@ -35,7 +35,7 @@ module.exports = {
|
|
35
35
|
|
36
36
|
create(context) {
|
37
37
|
|
38
|
-
const sourceCode = context.
|
38
|
+
const sourceCode = context.sourceCode;
|
39
39
|
|
40
40
|
/**
|
41
41
|
* Check if open space is present in a function name
|
package/lib/rules/no-sync.js
CHANGED
package/lib/rules/no-tabs.js
CHANGED
@@ -24,7 +24,7 @@ module.exports = {
|
|
24
24
|
docs: {
|
25
25
|
description: "Disallow all tabs",
|
26
26
|
recommended: false,
|
27
|
-
url: "https://eslint.org/docs/rules/no-tabs"
|
27
|
+
url: "https://eslint.org/docs/latest/rules/no-tabs"
|
28
28
|
},
|
29
29
|
schema: [{
|
30
30
|
type: "object",
|
@@ -43,7 +43,7 @@ module.exports = {
|
|
43
43
|
},
|
44
44
|
|
45
45
|
create(context) {
|
46
|
-
const sourceCode = context.
|
46
|
+
const sourceCode = context.sourceCode;
|
47
47
|
const allowIndentationTabs = context.options && context.options[0] && context.options[0].allowIndentationTabs;
|
48
48
|
|
49
49
|
return {
|
@@ -16,7 +16,7 @@ module.exports = {
|
|
16
16
|
docs: {
|
17
17
|
description: "Disallow template literal placeholder syntax in regular strings",
|
18
18
|
recommended: false,
|
19
|
-
url: "https://eslint.org/docs/rules/no-template-curly-in-string"
|
19
|
+
url: "https://eslint.org/docs/latest/rules/no-template-curly-in-string"
|
20
20
|
},
|
21
21
|
|
22
22
|
schema: [],
|
package/lib/rules/no-ternary.js
CHANGED
@@ -42,7 +42,7 @@ module.exports = {
|
|
42
42
|
docs: {
|
43
43
|
description: "Disallow `this`/`super` before calling `super()` in constructors",
|
44
44
|
recommended: true,
|
45
|
-
url: "https://eslint.org/docs/rules/no-this-before-super"
|
45
|
+
url: "https://eslint.org/docs/latest/rules/no-this-before-super"
|
46
46
|
},
|
47
47
|
|
48
48
|
schema: [],
|
@@ -22,7 +22,7 @@ module.exports = {
|
|
22
22
|
docs: {
|
23
23
|
description: "Disallow trailing whitespace at the end of lines",
|
24
24
|
recommended: false,
|
25
|
-
url: "https://eslint.org/docs/rules/no-trailing-spaces"
|
25
|
+
url: "https://eslint.org/docs/latest/rules/no-trailing-spaces"
|
26
26
|
},
|
27
27
|
|
28
28
|
fixable: "whitespace",
|
@@ -50,7 +50,7 @@ module.exports = {
|
|
50
50
|
},
|
51
51
|
|
52
52
|
create(context) {
|
53
|
-
const sourceCode = context.
|
53
|
+
const sourceCode = context.sourceCode;
|
54
54
|
|
55
55
|
const BLANK_CLASS = "[ \t\u00a0\u2000-\u200b\u3000]",
|
56
56
|
SKIP_BLANK = `^${BLANK_CLASS}*$`,
|
@@ -19,7 +19,7 @@ module.exports = {
|
|
19
19
|
docs: {
|
20
20
|
description: "Disallow initializing variables to `undefined`",
|
21
21
|
recommended: false,
|
22
|
-
url: "https://eslint.org/docs/rules/no-undef-init"
|
22
|
+
url: "https://eslint.org/docs/latest/rules/no-undef-init"
|
23
23
|
},
|
24
24
|
|
25
25
|
schema: [],
|
@@ -32,7 +32,7 @@ module.exports = {
|
|
32
32
|
|
33
33
|
create(context) {
|
34
34
|
|
35
|
-
const sourceCode = context.
|
35
|
+
const sourceCode = context.sourceCode;
|
36
36
|
|
37
37
|
return {
|
38
38
|
|
package/lib/rules/no-undef.js
CHANGED
@@ -31,7 +31,7 @@ module.exports = {
|
|
31
31
|
docs: {
|
32
32
|
description: "Disallow the use of undeclared variables unless mentioned in `/*global */` comments",
|
33
33
|
recommended: true,
|
34
|
-
url: "https://eslint.org/docs/rules/no-undef"
|
34
|
+
url: "https://eslint.org/docs/latest/rules/no-undef"
|
35
35
|
},
|
36
36
|
|
37
37
|
schema: [
|
@@ -54,7 +54,7 @@ module.exports = {
|
|
54
54
|
create(context) {
|
55
55
|
const options = context.options[0];
|
56
56
|
const considerTypeOf = options && options.typeof === true || false;
|
57
|
-
const sourceCode = context.
|
57
|
+
const sourceCode = context.sourceCode;
|
58
58
|
|
59
59
|
return {
|
60
60
|
"Program:exit"(node) {
|
@@ -16,7 +16,7 @@ module.exports = {
|
|
16
16
|
docs: {
|
17
17
|
description: "Disallow the use of `undefined` as an identifier",
|
18
18
|
recommended: false,
|
19
|
-
url: "https://eslint.org/docs/rules/no-undefined"
|
19
|
+
url: "https://eslint.org/docs/latest/rules/no-undefined"
|
20
20
|
},
|
21
21
|
|
22
22
|
schema: [],
|
@@ -28,7 +28,7 @@ module.exports = {
|
|
28
28
|
|
29
29
|
create(context) {
|
30
30
|
|
31
|
-
const sourceCode = context.
|
31
|
+
const sourceCode = context.sourceCode;
|
32
32
|
|
33
33
|
/**
|
34
34
|
* Report an invalid "undefined" identifier node.
|
@@ -17,7 +17,7 @@ module.exports = {
|
|
17
17
|
docs: {
|
18
18
|
description: "Disallow dangling underscores in identifiers",
|
19
19
|
recommended: false,
|
20
|
-
url: "https://eslint.org/docs/rules/no-underscore-dangle"
|
20
|
+
url: "https://eslint.org/docs/latest/rules/no-underscore-dangle"
|
21
21
|
},
|
22
22
|
|
23
23
|
schema: [
|
@@ -84,7 +84,7 @@ module.exports = {
|
|
84
84
|
const allowFunctionParams = typeof options.allowFunctionParams !== "undefined" ? options.allowFunctionParams : true;
|
85
85
|
const allowInArrayDestructuring = typeof options.allowInArrayDestructuring !== "undefined" ? options.allowInArrayDestructuring : true;
|
86
86
|
const allowInObjectDestructuring = typeof options.allowInObjectDestructuring !== "undefined" ? options.allowInObjectDestructuring : true;
|
87
|
-
const sourceCode = context.
|
87
|
+
const sourceCode = context.sourceCode;
|
88
88
|
|
89
89
|
//-------------------------------------------------------------------------
|
90
90
|
// Helpers
|
@@ -22,7 +22,7 @@ module.exports = {
|
|
22
22
|
docs: {
|
23
23
|
description: "Disallow confusing multiline expressions",
|
24
24
|
recommended: true,
|
25
|
-
url: "https://eslint.org/docs/rules/no-unexpected-multiline"
|
25
|
+
url: "https://eslint.org/docs/latest/rules/no-unexpected-multiline"
|
26
26
|
},
|
27
27
|
|
28
28
|
schema: [],
|
@@ -38,7 +38,7 @@ module.exports = {
|
|
38
38
|
|
39
39
|
const REGEX_FLAG_MATCHER = /^[gimsuy]+$/u;
|
40
40
|
|
41
|
-
const sourceCode = context.
|
41
|
+
const sourceCode = context.sourceCode;
|
42
42
|
|
43
43
|
/**
|
44
44
|
* Check to see if there is a newline between the node and the following open bracket
|
@@ -164,7 +164,7 @@ module.exports = {
|
|
164
164
|
docs: {
|
165
165
|
description: "Disallow unmodified loop conditions",
|
166
166
|
recommended: false,
|
167
|
-
url: "https://eslint.org/docs/rules/no-unmodified-loop-condition"
|
167
|
+
url: "https://eslint.org/docs/latest/rules/no-unmodified-loop-condition"
|
168
168
|
},
|
169
169
|
|
170
170
|
schema: [],
|
@@ -175,7 +175,7 @@ module.exports = {
|
|
175
175
|
},
|
176
176
|
|
177
177
|
create(context) {
|
178
|
-
const sourceCode = context.
|
178
|
+
const sourceCode = context.sourceCode;
|
179
179
|
let groupMap = null;
|
180
180
|
|
181
181
|
/**
|
@@ -31,7 +31,7 @@ module.exports = {
|
|
31
31
|
docs: {
|
32
32
|
description: "Disallow ternary operators when simpler alternatives exist",
|
33
33
|
recommended: false,
|
34
|
-
url: "https://eslint.org/docs/rules/no-unneeded-ternary"
|
34
|
+
url: "https://eslint.org/docs/latest/rules/no-unneeded-ternary"
|
35
35
|
},
|
36
36
|
|
37
37
|
schema: [
|
@@ -58,7 +58,7 @@ module.exports = {
|
|
58
58
|
create(context) {
|
59
59
|
const options = context.options[0] || {};
|
60
60
|
const defaultAssignment = options.defaultAssignment !== false;
|
61
|
-
const sourceCode = context.
|
61
|
+
const sourceCode = context.sourceCode;
|
62
62
|
|
63
63
|
/**
|
64
64
|
* Test if the node is a boolean literal
|
@@ -61,7 +61,7 @@ module.exports = {
|
|
61
61
|
docs: {
|
62
62
|
description: "Disallow loops with a body that allows only one iteration",
|
63
63
|
recommended: false,
|
64
|
-
url: "https://eslint.org/docs/rules/no-unreachable-loop"
|
64
|
+
url: "https://eslint.org/docs/latest/rules/no-unreachable-loop"
|
65
65
|
},
|
66
66
|
|
67
67
|
schema: [{
|
@@ -113,7 +113,7 @@ module.exports = {
|
|
113
113
|
docs: {
|
114
114
|
description: "Disallow unreachable code after `return`, `throw`, `continue`, and `break` statements",
|
115
115
|
recommended: true,
|
116
|
-
url: "https://eslint.org/docs/rules/no-unreachable"
|
116
|
+
url: "https://eslint.org/docs/latest/rules/no-unreachable"
|
117
117
|
},
|
118
118
|
|
119
119
|
schema: [],
|
@@ -130,7 +130,7 @@ module.exports = {
|
|
130
130
|
let constructorInfo = null;
|
131
131
|
|
132
132
|
/** @type {ConsecutiveRange} */
|
133
|
-
const range = new ConsecutiveRange(context.
|
133
|
+
const range = new ConsecutiveRange(context.sourceCode);
|
134
134
|
|
135
135
|
/**
|
136
136
|
* Reports a given node if it's unreachable.
|
@@ -26,7 +26,7 @@ module.exports = {
|
|
26
26
|
docs: {
|
27
27
|
description: "Disallow control flow statements in `finally` blocks",
|
28
28
|
recommended: true,
|
29
|
-
url: "https://eslint.org/docs/rules/no-unsafe-finally"
|
29
|
+
url: "https://eslint.org/docs/latest/rules/no-unsafe-finally"
|
30
30
|
},
|
31
31
|
|
32
32
|
schema: [],
|
@@ -54,7 +54,7 @@ module.exports = {
|
|
54
54
|
docs: {
|
55
55
|
description: "Disallow negating the left operand of relational operators",
|
56
56
|
recommended: true,
|
57
|
-
url: "https://eslint.org/docs/rules/no-unsafe-negation"
|
57
|
+
url: "https://eslint.org/docs/latest/rules/no-unsafe-negation"
|
58
58
|
},
|
59
59
|
|
60
60
|
hasSuggestions: true,
|
@@ -82,7 +82,7 @@ module.exports = {
|
|
82
82
|
},
|
83
83
|
|
84
84
|
create(context) {
|
85
|
-
const sourceCode = context.
|
85
|
+
const sourceCode = context.sourceCode;
|
86
86
|
const options = context.options[0] || {};
|
87
87
|
const enforceForOrderingRelations = options.enforceForOrderingRelations === true;
|
88
88
|
|
@@ -26,7 +26,7 @@ module.exports = {
|
|
26
26
|
docs: {
|
27
27
|
description: "Disallow use of optional chaining in contexts where the `undefined` value is not allowed",
|
28
28
|
recommended: true,
|
29
|
-
url: "https://eslint.org/docs/rules/no-unsafe-optional-chaining"
|
29
|
+
url: "https://eslint.org/docs/latest/rules/no-unsafe-optional-chaining"
|
30
30
|
},
|
31
31
|
schema: [{
|
32
32
|
type: "object",
|
@@ -32,7 +32,7 @@ module.exports = {
|
|
32
32
|
docs: {
|
33
33
|
description: "Disallow unused expressions",
|
34
34
|
recommended: false,
|
35
|
-
url: "https://eslint.org/docs/rules/no-unused-expressions"
|
35
|
+
url: "https://eslint.org/docs/latest/rules/no-unused-expressions"
|
36
36
|
},
|
37
37
|
|
38
38
|
schema: [
|
@@ -70,8 +70,7 @@ module.exports = {
|
|
70
70
|
allowShortCircuit = config.allowShortCircuit || false,
|
71
71
|
allowTernary = config.allowTernary || false,
|
72
72
|
allowTaggedTemplates = config.allowTaggedTemplates || false,
|
73
|
-
enforceForJSX = config.enforceForJSX || false
|
74
|
-
sourceCode = context.getSourceCode();
|
73
|
+
enforceForJSX = config.enforceForJSX || false;
|
75
74
|
|
76
75
|
/**
|
77
76
|
* Has AST suggesting a directive.
|
@@ -110,12 +109,11 @@ module.exports = {
|
|
110
109
|
/**
|
111
110
|
* Detect if a Node is a directive.
|
112
111
|
* @param {ASTNode} node any node
|
113
|
-
* @param {ASTNode[]} ancestors the given node's ancestors
|
114
112
|
* @returns {boolean} whether the given node is considered a directive in its current position
|
115
113
|
*/
|
116
|
-
function isDirective(node
|
117
|
-
const parent =
|
118
|
-
grandparent =
|
114
|
+
function isDirective(node) {
|
115
|
+
const parent = node.parent,
|
116
|
+
grandparent = parent.parent;
|
119
117
|
|
120
118
|
/**
|
121
119
|
* https://tc39.es/ecma262/#directive-prologue
|
@@ -181,7 +179,7 @@ module.exports = {
|
|
181
179
|
|
182
180
|
return {
|
183
181
|
ExpressionStatement(node) {
|
184
|
-
if (Checker.isDisallowed(node.expression) && !isDirective(node
|
182
|
+
if (Checker.isDisallowed(node.expression) && !isDirective(node)) {
|
185
183
|
context.report({ node, messageId: "unusedExpression" });
|
186
184
|
}
|
187
185
|
}
|