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
@@ -52,7 +52,7 @@ module.exports = {
|
|
52
52
|
description:
|
53
53
|
"Disallow use of `Object.prototype.hasOwnProperty.call()` and prefer use of `Object.hasOwn()`",
|
54
54
|
recommended: false,
|
55
|
-
url: "https://eslint.org/docs/rules/prefer-object-has-own"
|
55
|
+
url: "https://eslint.org/docs/latest/rules/prefer-object-has-own"
|
56
56
|
},
|
57
57
|
schema: [],
|
58
58
|
messages: {
|
@@ -62,7 +62,7 @@ module.exports = {
|
|
62
62
|
},
|
63
63
|
create(context) {
|
64
64
|
|
65
|
-
const sourceCode = context.
|
65
|
+
const sourceCode = context.sourceCode;
|
66
66
|
|
67
67
|
return {
|
68
68
|
CallExpression(node) {
|
@@ -1,7 +1,6 @@
|
|
1
1
|
/**
|
2
2
|
* @fileoverview Prefers object spread property over Object.assign
|
3
3
|
* @author Sharmila Jesupaul
|
4
|
-
* See LICENSE file in root directory for full license.
|
5
4
|
*/
|
6
5
|
|
7
6
|
"use strict";
|
@@ -249,7 +248,7 @@ module.exports = {
|
|
249
248
|
description:
|
250
249
|
"Disallow using Object.assign with an object literal as the first argument and prefer the use of object spread instead",
|
251
250
|
recommended: false,
|
252
|
-
url: "https://eslint.org/docs/rules/prefer-object-spread"
|
251
|
+
url: "https://eslint.org/docs/latest/rules/prefer-object-spread"
|
253
252
|
},
|
254
253
|
|
255
254
|
schema: [],
|
@@ -262,7 +261,7 @@ module.exports = {
|
|
262
261
|
},
|
263
262
|
|
264
263
|
create(context) {
|
265
|
-
const sourceCode = context.
|
264
|
+
const sourceCode = context.sourceCode;
|
266
265
|
|
267
266
|
return {
|
268
267
|
Program(node) {
|
@@ -18,7 +18,7 @@ module.exports = {
|
|
18
18
|
docs: {
|
19
19
|
description: "Require using Error objects as Promise rejection reasons",
|
20
20
|
recommended: false,
|
21
|
-
url: "https://eslint.org/docs/rules/prefer-promise-reject-errors"
|
21
|
+
url: "https://eslint.org/docs/latest/rules/prefer-promise-reject-errors"
|
22
22
|
},
|
23
23
|
|
24
24
|
fixable: null,
|
@@ -41,7 +41,7 @@ module.exports = {
|
|
41
41
|
create(context) {
|
42
42
|
|
43
43
|
const ALLOW_EMPTY_REJECT = context.options.length && context.options[0].allowEmptyReject;
|
44
|
-
const sourceCode = context.
|
44
|
+
const sourceCode = context.sourceCode;
|
45
45
|
|
46
46
|
//----------------------------------------------------------------------
|
47
47
|
// Helpers
|
@@ -17,7 +17,7 @@ module.exports = {
|
|
17
17
|
docs: {
|
18
18
|
description: "Require `Reflect` methods where applicable",
|
19
19
|
recommended: false,
|
20
|
-
url: "https://eslint.org/docs/rules/prefer-reflect"
|
20
|
+
url: "https://eslint.org/docs/latest/rules/prefer-reflect"
|
21
21
|
},
|
22
22
|
|
23
23
|
deprecated: true,
|
@@ -124,7 +124,7 @@ module.exports = {
|
|
124
124
|
docs: {
|
125
125
|
description: "Disallow use of the `RegExp` constructor in favor of regular expression literals",
|
126
126
|
recommended: false,
|
127
|
-
url: "https://eslint.org/docs/rules/prefer-regex-literals"
|
127
|
+
url: "https://eslint.org/docs/latest/rules/prefer-regex-literals"
|
128
128
|
},
|
129
129
|
|
130
130
|
hasSuggestions: true,
|
@@ -154,7 +154,7 @@ module.exports = {
|
|
154
154
|
|
155
155
|
create(context) {
|
156
156
|
const [{ disallowRedundantWrapping = false } = {}] = context.options;
|
157
|
-
const sourceCode = context.
|
157
|
+
const sourceCode = context.sourceCode;
|
158
158
|
|
159
159
|
/**
|
160
160
|
* Determines whether the given identifier node is a reference to a global variable.
|
@@ -67,7 +67,7 @@ module.exports = {
|
|
67
67
|
docs: {
|
68
68
|
description: "Require rest parameters instead of `arguments`",
|
69
69
|
recommended: false,
|
70
|
-
url: "https://eslint.org/docs/rules/prefer-rest-params"
|
70
|
+
url: "https://eslint.org/docs/latest/rules/prefer-rest-params"
|
71
71
|
},
|
72
72
|
|
73
73
|
schema: [],
|
@@ -79,7 +79,7 @@ module.exports = {
|
|
79
79
|
|
80
80
|
create(context) {
|
81
81
|
|
82
|
-
const sourceCode = context.
|
82
|
+
const sourceCode = context.sourceCode;
|
83
83
|
|
84
84
|
/**
|
85
85
|
* Reports a given reference.
|
@@ -51,7 +51,7 @@ module.exports = {
|
|
51
51
|
docs: {
|
52
52
|
description: "Require spread operators instead of `.apply()`",
|
53
53
|
recommended: false,
|
54
|
-
url: "https://eslint.org/docs/rules/prefer-spread"
|
54
|
+
url: "https://eslint.org/docs/latest/rules/prefer-spread"
|
55
55
|
},
|
56
56
|
|
57
57
|
schema: [],
|
@@ -63,7 +63,7 @@ module.exports = {
|
|
63
63
|
},
|
64
64
|
|
65
65
|
create(context) {
|
66
|
-
const sourceCode = context.
|
66
|
+
const sourceCode = context.sourceCode;
|
67
67
|
|
68
68
|
return {
|
69
69
|
CallExpression(node) {
|
@@ -130,7 +130,7 @@ module.exports = {
|
|
130
130
|
docs: {
|
131
131
|
description: "Require template literals instead of string concatenation",
|
132
132
|
recommended: false,
|
133
|
-
url: "https://eslint.org/docs/rules/prefer-template"
|
133
|
+
url: "https://eslint.org/docs/latest/rules/prefer-template"
|
134
134
|
},
|
135
135
|
|
136
136
|
schema: [],
|
@@ -142,7 +142,7 @@ module.exports = {
|
|
142
142
|
},
|
143
143
|
|
144
144
|
create(context) {
|
145
|
-
const sourceCode = context.
|
145
|
+
const sourceCode = context.sourceCode;
|
146
146
|
let done = Object.create(null);
|
147
147
|
|
148
148
|
/**
|
package/lib/rules/quote-props.js
CHANGED
@@ -24,7 +24,7 @@ module.exports = {
|
|
24
24
|
docs: {
|
25
25
|
description: "Require quotes around object literal property names",
|
26
26
|
recommended: false,
|
27
|
-
url: "https://eslint.org/docs/rules/quote-props"
|
27
|
+
url: "https://eslint.org/docs/latest/rules/quote-props"
|
28
28
|
},
|
29
29
|
|
30
30
|
schema: {
|
@@ -86,7 +86,7 @@ module.exports = {
|
|
86
86
|
CHECK_UNNECESSARY = !context.options[1] || context.options[1].unnecessary !== false,
|
87
87
|
NUMBERS = context.options[1] && context.options[1].numbers,
|
88
88
|
|
89
|
-
sourceCode = context.
|
89
|
+
sourceCode = context.sourceCode;
|
90
90
|
|
91
91
|
|
92
92
|
/**
|
package/lib/rules/quotes.js
CHANGED
@@ -82,7 +82,7 @@ module.exports = {
|
|
82
82
|
docs: {
|
83
83
|
description: "Enforce the consistent use of either backticks, double, or single quotes",
|
84
84
|
recommended: false,
|
85
|
-
url: "https://eslint.org/docs/rules/quotes"
|
85
|
+
url: "https://eslint.org/docs/latest/rules/quotes"
|
86
86
|
},
|
87
87
|
|
88
88
|
fixable: "code",
|
@@ -123,7 +123,7 @@ module.exports = {
|
|
123
123
|
settings = QUOTE_SETTINGS[quoteOption || "double"],
|
124
124
|
options = context.options[1],
|
125
125
|
allowTemplateLiterals = options && options.allowTemplateLiterals === true,
|
126
|
-
sourceCode = context.
|
126
|
+
sourceCode = context.sourceCode;
|
127
127
|
let avoidEscape = options && options.avoidEscape === true;
|
128
128
|
|
129
129
|
// deprecated
|
package/lib/rules/radix.js
CHANGED
@@ -82,7 +82,7 @@ module.exports = {
|
|
82
82
|
docs: {
|
83
83
|
description: "Enforce the consistent use of the radix argument when using `parseInt()`",
|
84
84
|
recommended: false,
|
85
|
-
url: "https://eslint.org/docs/rules/radix"
|
85
|
+
url: "https://eslint.org/docs/latest/rules/radix"
|
86
86
|
},
|
87
87
|
|
88
88
|
hasSuggestions: true,
|
@@ -104,7 +104,7 @@ module.exports = {
|
|
104
104
|
|
105
105
|
create(context) {
|
106
106
|
const mode = context.options[0] || MODE_ALWAYS;
|
107
|
-
const sourceCode = context.
|
107
|
+
const sourceCode = context.sourceCode;
|
108
108
|
|
109
109
|
/**
|
110
110
|
* Checks the arguments of a given CallExpression node and reports it if it
|
@@ -173,7 +173,7 @@ module.exports = {
|
|
173
173
|
docs: {
|
174
174
|
description: "Disallow assignments that can lead to race conditions due to usage of `await` or `yield`",
|
175
175
|
recommended: false,
|
176
|
-
url: "https://eslint.org/docs/rules/require-atomic-updates"
|
176
|
+
url: "https://eslint.org/docs/latest/rules/require-atomic-updates"
|
177
177
|
},
|
178
178
|
|
179
179
|
fixable: null,
|
@@ -198,7 +198,7 @@ module.exports = {
|
|
198
198
|
create(context) {
|
199
199
|
const allowProperties = !!context.options[0] && context.options[0].allowProperties;
|
200
200
|
|
201
|
-
const sourceCode = context.
|
201
|
+
const sourceCode = context.sourceCode;
|
202
202
|
const assignmentReferences = new Map();
|
203
203
|
const segmentInfo = new SegmentInfo();
|
204
204
|
let stack = null;
|
@@ -36,7 +36,7 @@ module.exports = {
|
|
36
36
|
docs: {
|
37
37
|
description: "Disallow async functions which have no `await` expression",
|
38
38
|
recommended: false,
|
39
|
-
url: "https://eslint.org/docs/rules/require-await"
|
39
|
+
url: "https://eslint.org/docs/latest/rules/require-await"
|
40
40
|
},
|
41
41
|
|
42
42
|
schema: [],
|
@@ -47,7 +47,7 @@ module.exports = {
|
|
47
47
|
},
|
48
48
|
|
49
49
|
create(context) {
|
50
|
-
const sourceCode = context.
|
50
|
+
const sourceCode = context.sourceCode;
|
51
51
|
let scopeInfo = null;
|
52
52
|
|
53
53
|
/**
|
@@ -13,7 +13,7 @@ module.exports = {
|
|
13
13
|
docs: {
|
14
14
|
description: "Require JSDoc comments",
|
15
15
|
recommended: false,
|
16
|
-
url: "https://eslint.org/docs/rules/require-jsdoc"
|
16
|
+
url: "https://eslint.org/docs/latest/rules/require-jsdoc"
|
17
17
|
},
|
18
18
|
|
19
19
|
schema: [
|
@@ -61,7 +61,7 @@ module.exports = {
|
|
61
61
|
},
|
62
62
|
|
63
63
|
create(context) {
|
64
|
-
const source = context.
|
64
|
+
const source = context.sourceCode;
|
65
65
|
const DEFAULT_OPTIONS = {
|
66
66
|
FunctionDeclaration: true,
|
67
67
|
MethodDefinition: false,
|
@@ -30,7 +30,7 @@ module.exports = {
|
|
30
30
|
docs: {
|
31
31
|
description: "Enforce the use of `u` flag on RegExp",
|
32
32
|
recommended: false,
|
33
|
-
url: "https://eslint.org/docs/rules/require-unicode-regexp"
|
33
|
+
url: "https://eslint.org/docs/latest/rules/require-unicode-regexp"
|
34
34
|
},
|
35
35
|
|
36
36
|
hasSuggestions: true,
|
@@ -45,7 +45,7 @@ module.exports = {
|
|
45
45
|
|
46
46
|
create(context) {
|
47
47
|
|
48
|
-
const sourceCode = context.
|
48
|
+
const sourceCode = context.sourceCode;
|
49
49
|
|
50
50
|
return {
|
51
51
|
"Literal[regex]"(node) {
|
@@ -17,7 +17,7 @@ module.exports = {
|
|
17
17
|
docs: {
|
18
18
|
description: "Enforce spacing between rest and spread operators and their expressions",
|
19
19
|
recommended: false,
|
20
|
-
url: "https://eslint.org/docs/rules/rest-spread-spacing"
|
20
|
+
url: "https://eslint.org/docs/latest/rules/rest-spread-spacing"
|
21
21
|
},
|
22
22
|
|
23
23
|
fixable: "whitespace",
|
@@ -35,7 +35,7 @@ module.exports = {
|
|
35
35
|
},
|
36
36
|
|
37
37
|
create(context) {
|
38
|
-
const sourceCode = context.
|
38
|
+
const sourceCode = context.sourceCode,
|
39
39
|
alwaysSpace = context.options[0] === "always";
|
40
40
|
|
41
41
|
//--------------------------------------------------------------------------
|
@@ -19,7 +19,7 @@ module.exports = {
|
|
19
19
|
docs: {
|
20
20
|
description: "Enforce consistent spacing before and after semicolons",
|
21
21
|
recommended: false,
|
22
|
-
url: "https://eslint.org/docs/rules/semi-spacing"
|
22
|
+
url: "https://eslint.org/docs/latest/rules/semi-spacing"
|
23
23
|
},
|
24
24
|
|
25
25
|
fixable: "whitespace",
|
@@ -52,7 +52,7 @@ module.exports = {
|
|
52
52
|
create(context) {
|
53
53
|
|
54
54
|
const config = context.options[0],
|
55
|
-
sourceCode = context.
|
55
|
+
sourceCode = context.sourceCode;
|
56
56
|
let requireSpaceBefore = false,
|
57
57
|
requireSpaceAfter = true;
|
58
58
|
|
package/lib/rules/semi-style.js
CHANGED
@@ -75,7 +75,7 @@ module.exports = {
|
|
75
75
|
docs: {
|
76
76
|
description: "Enforce location of semicolons",
|
77
77
|
recommended: false,
|
78
|
-
url: "https://eslint.org/docs/rules/semi-style"
|
78
|
+
url: "https://eslint.org/docs/latest/rules/semi-style"
|
79
79
|
},
|
80
80
|
|
81
81
|
schema: [{ enum: ["last", "first"] }],
|
@@ -87,7 +87,7 @@ module.exports = {
|
|
87
87
|
},
|
88
88
|
|
89
89
|
create(context) {
|
90
|
-
const sourceCode = context.
|
90
|
+
const sourceCode = context.sourceCode;
|
91
91
|
const option = context.options[0] || "last";
|
92
92
|
|
93
93
|
/**
|
package/lib/rules/semi.js
CHANGED
@@ -23,7 +23,7 @@ module.exports = {
|
|
23
23
|
docs: {
|
24
24
|
description: "Require or disallow semicolons instead of ASI",
|
25
25
|
recommended: false,
|
26
|
-
url: "https://eslint.org/docs/rules/semi"
|
26
|
+
url: "https://eslint.org/docs/latest/rules/semi"
|
27
27
|
},
|
28
28
|
|
29
29
|
fixable: "code",
|
@@ -58,7 +58,8 @@ module.exports = {
|
|
58
58
|
{
|
59
59
|
type: "object",
|
60
60
|
properties: {
|
61
|
-
omitLastInOneLineBlock: { type: "boolean" }
|
61
|
+
omitLastInOneLineBlock: { type: "boolean" },
|
62
|
+
omitLastInOneLineClassBody: { type: "boolean" }
|
62
63
|
},
|
63
64
|
additionalProperties: false
|
64
65
|
}
|
@@ -83,8 +84,9 @@ module.exports = {
|
|
83
84
|
const options = context.options[1];
|
84
85
|
const never = context.options[0] === "never";
|
85
86
|
const exceptOneLine = Boolean(options && options.omitLastInOneLineBlock);
|
87
|
+
const exceptOneLineClassBody = Boolean(options && options.omitLastInOneLineClassBody);
|
86
88
|
const beforeStatementContinuationChars = options && options.beforeStatementContinuationChars || "any";
|
87
|
-
const sourceCode = context.
|
89
|
+
const sourceCode = context.sourceCode;
|
88
90
|
|
89
91
|
//--------------------------------------------------------------------------
|
90
92
|
// Helpers
|
@@ -334,6 +336,27 @@ module.exports = {
|
|
334
336
|
return false;
|
335
337
|
}
|
336
338
|
|
339
|
+
/**
|
340
|
+
* Checks a node to see if it's the last item in a one-liner `ClassBody` node.
|
341
|
+
* ClassBody is a one-liner if its braces (and consequently everything between them) are on the same line.
|
342
|
+
* @param {ASTNode} node The node to check.
|
343
|
+
* @returns {boolean} whether the node is the last item in a one-liner ClassBody.
|
344
|
+
*/
|
345
|
+
function isLastInOneLinerClassBody(node) {
|
346
|
+
const parent = node.parent;
|
347
|
+
const nextToken = sourceCode.getTokenAfter(node);
|
348
|
+
|
349
|
+
if (!nextToken || nextToken.value !== "}") {
|
350
|
+
return false;
|
351
|
+
}
|
352
|
+
|
353
|
+
if (parent.type === "ClassBody") {
|
354
|
+
return parent.loc.start.line === parent.loc.end.line;
|
355
|
+
}
|
356
|
+
|
357
|
+
return false;
|
358
|
+
}
|
359
|
+
|
337
360
|
/**
|
338
361
|
* Checks a node to see if it's followed by a semicolon.
|
339
362
|
* @param {ASTNode} node The node to check.
|
@@ -354,10 +377,12 @@ module.exports = {
|
|
354
377
|
}
|
355
378
|
} else {
|
356
379
|
const oneLinerBlock = (exceptOneLine && isLastInOneLinerBlock(node));
|
380
|
+
const oneLinerClassBody = (exceptOneLineClassBody && isLastInOneLinerClassBody(node));
|
381
|
+
const oneLinerBlockOrClassBody = oneLinerBlock || oneLinerClassBody;
|
357
382
|
|
358
|
-
if (isSemi &&
|
383
|
+
if (isSemi && oneLinerBlockOrClassBody) {
|
359
384
|
report(node, true);
|
360
|
-
} else if (!isSemi && !
|
385
|
+
} else if (!isSemi && !oneLinerBlockOrClassBody) {
|
361
386
|
report(node);
|
362
387
|
}
|
363
388
|
}
|
@@ -17,7 +17,7 @@ module.exports = {
|
|
17
17
|
docs: {
|
18
18
|
description: "Enforce sorted import declarations within modules",
|
19
19
|
recommended: false,
|
20
|
-
url: "https://eslint.org/docs/rules/sort-imports"
|
20
|
+
url: "https://eslint.org/docs/latest/rules/sort-imports"
|
21
21
|
},
|
22
22
|
|
23
23
|
schema: [
|
@@ -71,7 +71,7 @@ module.exports = {
|
|
71
71
|
ignoreMemberSort = configuration.ignoreMemberSort || false,
|
72
72
|
memberSyntaxSortOrder = configuration.memberSyntaxSortOrder || ["none", "all", "multiple", "single"],
|
73
73
|
allowSeparatedGroups = configuration.allowSeparatedGroups || false,
|
74
|
-
sourceCode = context.
|
74
|
+
sourceCode = context.sourceCode;
|
75
75
|
let previousDeclaration = null;
|
76
76
|
|
77
77
|
/**
|
package/lib/rules/sort-keys.js
CHANGED
@@ -83,7 +83,7 @@ module.exports = {
|
|
83
83
|
docs: {
|
84
84
|
description: "Require object keys to be sorted",
|
85
85
|
recommended: false,
|
86
|
-
url: "https://eslint.org/docs/rules/sort-keys"
|
86
|
+
url: "https://eslint.org/docs/latest/rules/sort-keys"
|
87
87
|
},
|
88
88
|
|
89
89
|
schema: [
|
@@ -135,7 +135,7 @@ module.exports = {
|
|
135
135
|
|
136
136
|
// The stack to save the previous property's name for each object literals.
|
137
137
|
let stack = null;
|
138
|
-
const sourceCode = context.
|
138
|
+
const sourceCode = context.sourceCode;
|
139
139
|
|
140
140
|
return {
|
141
141
|
ObjectExpression(node) {
|
package/lib/rules/sort-vars.js
CHANGED
@@ -17,7 +17,7 @@ module.exports = {
|
|
17
17
|
docs: {
|
18
18
|
description: "Require variables within the same declaration block to be sorted",
|
19
19
|
recommended: false,
|
20
|
-
url: "https://eslint.org/docs/rules/sort-vars"
|
20
|
+
url: "https://eslint.org/docs/latest/rules/sort-vars"
|
21
21
|
},
|
22
22
|
|
23
23
|
schema: [
|
@@ -44,7 +44,7 @@ module.exports = {
|
|
44
44
|
|
45
45
|
const configuration = context.options[0] || {},
|
46
46
|
ignoreCase = configuration.ignoreCase || false,
|
47
|
-
sourceCode = context.
|
47
|
+
sourceCode = context.sourceCode;
|
48
48
|
|
49
49
|
return {
|
50
50
|
VariableDeclaration(node) {
|
@@ -42,7 +42,7 @@ module.exports = {
|
|
42
42
|
docs: {
|
43
43
|
description: "Enforce consistent spacing before blocks",
|
44
44
|
recommended: false,
|
45
|
-
url: "https://eslint.org/docs/rules/space-before-blocks"
|
45
|
+
url: "https://eslint.org/docs/latest/rules/space-before-blocks"
|
46
46
|
},
|
47
47
|
|
48
48
|
fixable: "whitespace",
|
@@ -80,7 +80,7 @@ module.exports = {
|
|
80
80
|
|
81
81
|
create(context) {
|
82
82
|
const config = context.options[0],
|
83
|
-
sourceCode = context.
|
83
|
+
sourceCode = context.sourceCode;
|
84
84
|
let alwaysFunctions = true,
|
85
85
|
alwaysKeywords = true,
|
86
86
|
alwaysClasses = true,
|
@@ -22,7 +22,7 @@ module.exports = {
|
|
22
22
|
docs: {
|
23
23
|
description: "Enforce consistent spacing before `function` definition opening parenthesis",
|
24
24
|
recommended: false,
|
25
|
-
url: "https://eslint.org/docs/rules/space-before-function-paren"
|
25
|
+
url: "https://eslint.org/docs/latest/rules/space-before-function-paren"
|
26
26
|
},
|
27
27
|
|
28
28
|
fixable: "whitespace",
|
@@ -59,7 +59,7 @@ module.exports = {
|
|
59
59
|
},
|
60
60
|
|
61
61
|
create(context) {
|
62
|
-
const sourceCode = context.
|
62
|
+
const sourceCode = context.sourceCode;
|
63
63
|
const baseConfig = typeof context.options[0] === "string" ? context.options[0] : "always";
|
64
64
|
const overrideConfig = typeof context.options[0] === "object" ? context.options[0] : {};
|
65
65
|
|
@@ -18,7 +18,7 @@ module.exports = {
|
|
18
18
|
docs: {
|
19
19
|
description: "Enforce consistent spacing inside parentheses",
|
20
20
|
recommended: false,
|
21
|
-
url: "https://eslint.org/docs/rules/space-in-parens"
|
21
|
+
url: "https://eslint.org/docs/latest/rules/space-in-parens"
|
22
22
|
},
|
23
23
|
|
24
24
|
fixable: "whitespace",
|
@@ -102,7 +102,7 @@ module.exports = {
|
|
102
102
|
//--------------------------------------------------------------------------
|
103
103
|
// Helpers
|
104
104
|
//--------------------------------------------------------------------------
|
105
|
-
const sourceCode = context.
|
105
|
+
const sourceCode = context.sourceCode;
|
106
106
|
|
107
107
|
/**
|
108
108
|
* Determines if a token is one of the exceptions for the opener paren
|
@@ -18,7 +18,7 @@ module.exports = {
|
|
18
18
|
docs: {
|
19
19
|
description: "Require spacing around infix operators",
|
20
20
|
recommended: false,
|
21
|
-
url: "https://eslint.org/docs/rules/space-infix-ops"
|
21
|
+
url: "https://eslint.org/docs/latest/rules/space-infix-ops"
|
22
22
|
},
|
23
23
|
|
24
24
|
fixable: "whitespace",
|
@@ -43,7 +43,7 @@ module.exports = {
|
|
43
43
|
|
44
44
|
create(context) {
|
45
45
|
const int32Hint = context.options[0] ? context.options[0].int32Hint === true : false;
|
46
|
-
const sourceCode = context.
|
46
|
+
const sourceCode = context.sourceCode;
|
47
47
|
|
48
48
|
/**
|
49
49
|
* Returns the first token which violates the rule
|
@@ -22,7 +22,7 @@ module.exports = {
|
|
22
22
|
docs: {
|
23
23
|
description: "Enforce consistent spacing before or after unary operators",
|
24
24
|
recommended: false,
|
25
|
-
url: "https://eslint.org/docs/rules/space-unary-ops"
|
25
|
+
url: "https://eslint.org/docs/latest/rules/space-unary-ops"
|
26
26
|
},
|
27
27
|
|
28
28
|
fixable: "whitespace",
|
@@ -62,7 +62,7 @@ module.exports = {
|
|
62
62
|
create(context) {
|
63
63
|
const options = context.options[0] || { words: true, nonwords: false };
|
64
64
|
|
65
|
-
const sourceCode = context.
|
65
|
+
const sourceCode = context.sourceCode;
|
66
66
|
|
67
67
|
//--------------------------------------------------------------------------
|
68
68
|
// Helpers
|
@@ -154,7 +154,7 @@ module.exports = {
|
|
154
154
|
docs: {
|
155
155
|
description: "Enforce consistent spacing after the `//` or `/*` in a comment",
|
156
156
|
recommended: false,
|
157
|
-
url: "https://eslint.org/docs/rules/spaced-comment"
|
157
|
+
url: "https://eslint.org/docs/latest/rules/spaced-comment"
|
158
158
|
},
|
159
159
|
|
160
160
|
fixable: "whitespace",
|
@@ -235,7 +235,7 @@ module.exports = {
|
|
235
235
|
|
236
236
|
create(context) {
|
237
237
|
|
238
|
-
const sourceCode = context.
|
238
|
+
const sourceCode = context.sourceCode;
|
239
239
|
|
240
240
|
// Unless the first option is never, require a space
|
241
241
|
const requireSpace = context.options[0] !== "never";
|
package/lib/rules/strict.js
CHANGED
@@ -23,7 +23,7 @@ module.exports = {
|
|
23
23
|
docs: {
|
24
24
|
description: "Enforce spacing around colons of switch statements",
|
25
25
|
recommended: false,
|
26
|
-
url: "https://eslint.org/docs/rules/switch-colon-spacing"
|
26
|
+
url: "https://eslint.org/docs/latest/rules/switch-colon-spacing"
|
27
27
|
},
|
28
28
|
|
29
29
|
schema: [
|
@@ -46,7 +46,7 @@ module.exports = {
|
|
46
46
|
},
|
47
47
|
|
48
48
|
create(context) {
|
49
|
-
const sourceCode = context.
|
49
|
+
const sourceCode = context.sourceCode;
|
50
50
|
const options = context.options[0] || {};
|
51
51
|
const beforeSpacing = options.before === true; // false by default
|
52
52
|
const afterSpacing = options.after !== false; // true by default
|
@@ -24,7 +24,7 @@ module.exports = {
|
|
24
24
|
docs: {
|
25
25
|
description: "Require symbol descriptions",
|
26
26
|
recommended: false,
|
27
|
-
url: "https://eslint.org/docs/rules/symbol-description"
|
27
|
+
url: "https://eslint.org/docs/latest/rules/symbol-description"
|
28
28
|
},
|
29
29
|
fixable: null,
|
30
30
|
schema: [],
|
@@ -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
|
* Reports if node does not conform the rule in case rule is set to
|
@@ -23,7 +23,7 @@ module.exports = {
|
|
23
23
|
docs: {
|
24
24
|
description: "Require or disallow spacing around embedded expressions of template strings",
|
25
25
|
recommended: false,
|
26
|
-
url: "https://eslint.org/docs/rules/template-curly-spacing"
|
26
|
+
url: "https://eslint.org/docs/latest/rules/template-curly-spacing"
|
27
27
|
},
|
28
28
|
|
29
29
|
fixable: "whitespace",
|
@@ -40,7 +40,7 @@ module.exports = {
|
|
40
40
|
},
|
41
41
|
|
42
42
|
create(context) {
|
43
|
-
const sourceCode = context.
|
43
|
+
const sourceCode = context.sourceCode;
|
44
44
|
const always = context.options[0] === "always";
|
45
45
|
|
46
46
|
/**
|