oxlint-plugin-eslint 1.52.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/LICENSE +22 -0
- package/README.md +36 -0
- package/common/ast-utils.cjs +5843 -0
- package/common/chunk.cjs +9 -0
- package/common/eslint-utils.cjs +1633 -0
- package/common/fix-tracker.cjs +89 -0
- package/common/ignore.cjs +123 -0
- package/common/keywords.cjs +15 -0
- package/common/regexpp.cjs +1720 -0
- package/common/regular-expressions.cjs +40 -0
- package/common/string-utils.cjs +39 -0
- package/index.js +7477 -0
- package/package.json +34 -0
- package/rules/accessor-pairs.cjs +233 -0
- package/rules/array-bracket-newline.cjs +172 -0
- package/rules/array-bracket-spacing.cjs +184 -0
- package/rules/array-callback-return.cjs +262 -0
- package/rules/array-element-newline.cjs +178 -0
- package/rules/arrow-body-style.cjs +135 -0
- package/rules/arrow-parens.cjs +130 -0
- package/rules/arrow-spacing.cjs +129 -0
- package/rules/block-scoped-var.cjs +101 -0
- package/rules/block-spacing.cjs +125 -0
- package/rules/brace-style.cjs +141 -0
- package/rules/callback-return.cjs +117 -0
- package/rules/camelcase.cjs +194 -0
- package/rules/capitalized-comments.cjs +168 -0
- package/rules/class-methods-use-this.cjs +155 -0
- package/rules/comma-dangle.cjs +274 -0
- package/rules/comma-spacing.cjs +111 -0
- package/rules/comma-style.cjs +180 -0
- package/rules/complexity.cjs +100 -0
- package/rules/computed-property-spacing.cjs +155 -0
- package/rules/consistent-return.cjs +113 -0
- package/rules/consistent-this.cjs +109 -0
- package/rules/constructor-super.cjs +207 -0
- package/rules/curly.cjs +173 -0
- package/rules/default-case-last.cjs +36 -0
- package/rules/default-case.cjs +50 -0
- package/rules/default-param-last.cjs +61 -0
- package/rules/dot-location.cjs +87 -0
- package/rules/dot-notation.cjs +77 -0
- package/rules/eol-last.cjs +91 -0
- package/rules/eqeqeq.cjs +127 -0
- package/rules/for-direction.cjs +94 -0
- package/rules/func-call-spacing.cjs +127 -0
- package/rules/func-name-matching.cjs +138 -0
- package/rules/func-names.cjs +121 -0
- package/rules/func-style.cjs +103 -0
- package/rules/function-call-argument-newline.cjs +109 -0
- package/rules/function-paren-newline.cjs +173 -0
- package/rules/generator-star-spacing.cjs +174 -0
- package/rules/getter-return.cjs +129 -0
- package/rules/global-require.cjs +84 -0
- package/rules/grouped-accessor-pairs.cjs +146 -0
- package/rules/guard-for-in.cjs +39 -0
- package/rules/handle-callback-err.cjs +86 -0
- package/rules/id-blacklist.cjs +135 -0
- package/rules/id-denylist.cjs +126 -0
- package/rules/id-length.cjs +119 -0
- package/rules/id-match.cjs +139 -0
- package/rules/implicit-arrow-linebreak.cjs +76 -0
- package/rules/indent-legacy.cjs +520 -0
- package/rules/indent.cjs +842 -0
- package/rules/init-declarations.cjs +88 -0
- package/rules/jsx-quotes.cjs +84 -0
- package/rules/key-spacing.cjs +399 -0
- package/rules/keyword-spacing.cjs +464 -0
- package/rules/line-comment-position.cjs +75 -0
- package/rules/linebreak-style.cjs +89 -0
- package/rules/lines-around-comment.cjs +290 -0
- package/rules/lines-around-directive.cjs +129 -0
- package/rules/lines-between-class-members.cjs +212 -0
- package/rules/logical-assignment-operators.cjs +305 -0
- package/rules/max-classes-per-file.cjs +61 -0
- package/rules/max-depth.cjs +117 -0
- package/rules/max-len.cjs +256 -0
- package/rules/max-lines-per-function.cjs +116 -0
- package/rules/max-lines.cjs +109 -0
- package/rules/max-nested-callbacks.cjs +78 -0
- package/rules/max-params.cjs +78 -0
- package/rules/max-statements-per-line.cjs +147 -0
- package/rules/max-statements.cjs +119 -0
- package/rules/multiline-comment-style.cjs +319 -0
- package/rules/multiline-ternary.cjs +106 -0
- package/rules/new-cap.cjs +139 -0
- package/rules/new-parens.cjs +70 -0
- package/rules/newline-after-var.cjs +159 -0
- package/rules/newline-before-return.cjs +128 -0
- package/rules/newline-per-chained-call.cjs +100 -0
- package/rules/no-alert.cjs +84 -0
- package/rules/no-array-constructor.cjs +91 -0
- package/rules/no-async-promise-executor.cjs +33 -0
- package/rules/no-await-in-loop.cjs +75 -0
- package/rules/no-bitwise.cjs +106 -0
- package/rules/no-buffer-constructor.cjs +51 -0
- package/rules/no-caller.cjs +34 -0
- package/rules/no-case-declarations.cjs +56 -0
- package/rules/no-catch-shadow.cjs +57 -0
- package/rules/no-class-assign.cjs +55 -0
- package/rules/no-compare-neg-zero.cjs +52 -0
- package/rules/no-cond-assign.cjs +104 -0
- package/rules/no-confusing-arrow.cjs +87 -0
- package/rules/no-console.cjs +138 -0
- package/rules/no-const-assign.cjs +50 -0
- package/rules/no-constant-binary-expression.cjs +284 -0
- package/rules/no-constant-condition.cjs +119 -0
- package/rules/no-constructor-return.cjs +43 -0
- package/rules/no-continue.cjs +33 -0
- package/rules/no-control-regex.cjs +74 -0
- package/rules/no-debugger.cjs +33 -0
- package/rules/no-delete-var.cjs +32 -0
- package/rules/no-div-regex.cjs +39 -0
- package/rules/no-dupe-args.cjs +61 -0
- package/rules/no-dupe-class-members.cjs +77 -0
- package/rules/no-dupe-else-if.cjs +74 -0
- package/rules/no-dupe-keys.cjs +88 -0
- package/rules/no-duplicate-case.cjs +49 -0
- package/rules/no-duplicate-imports.cjs +166 -0
- package/rules/no-else-return.cjs +182 -0
- package/rules/no-empty-character-class.cjs +47 -0
- package/rules/no-empty-function.cjs +141 -0
- package/rules/no-empty-pattern.cjs +50 -0
- package/rules/no-empty-static-block.cjs +50 -0
- package/rules/no-empty.cjs +78 -0
- package/rules/no-eq-null.cjs +34 -0
- package/rules/no-eval.cjs +165 -0
- package/rules/no-ex-assign.cjs +45 -0
- package/rules/no-extend-native.cjs +103 -0
- package/rules/no-extra-bind.cjs +127 -0
- package/rules/no-extra-boolean-cast.cjs +159 -0
- package/rules/no-extra-label.cjs +116 -0
- package/rules/no-extra-parens.cjs +665 -0
- package/rules/no-extra-semi.cjs +103 -0
- package/rules/no-fallthrough.cjs +136 -0
- package/rules/no-floating-decimal.cjs +66 -0
- package/rules/no-func-assign.cjs +63 -0
- package/rules/no-global-assign.cjs +62 -0
- package/rules/no-implicit-coercion.cjs +219 -0
- package/rules/no-implicit-globals.cjs +77 -0
- package/rules/no-implied-eval.cjs +87 -0
- package/rules/no-import-assign.cjs +123 -0
- package/rules/no-inline-comments.cjs +57 -0
- package/rules/no-inner-declarations.cjs +82 -0
- package/rules/no-invalid-regexp.cjs +130 -0
- package/rules/no-invalid-this.cjs +90 -0
- package/rules/no-irregular-whitespace.cjs +157 -0
- package/rules/no-iterator.cjs +34 -0
- package/rules/no-label-var.cjs +46 -0
- package/rules/no-labels.cjs +106 -0
- package/rules/no-lone-blocks.cjs +75 -0
- package/rules/no-lonely-if.cjs +42 -0
- package/rules/no-loop-func.cjs +143 -0
- package/rules/no-loss-of-precision.cjs +160 -0
- package/rules/no-magic-numbers.cjs +222 -0
- package/rules/no-misleading-character-class.cjs +500 -0
- package/rules/no-mixed-operators.cjs +197 -0
- package/rules/no-mixed-requires.cjs +117 -0
- package/rules/no-mixed-spaces-and-tabs.cjs +87 -0
- package/rules/no-multi-assign.cjs +38 -0
- package/rules/no-multi-spaces.cjs +95 -0
- package/rules/no-multi-str.cjs +44 -0
- package/rules/no-multiple-empty-lines.cjs +112 -0
- package/rules/no-native-reassign.cjs +72 -0
- package/rules/no-negated-condition.cjs +77 -0
- package/rules/no-negated-in-lhs.cjs +43 -0
- package/rules/no-nested-ternary.cjs +33 -0
- package/rules/no-new-func.cjs +50 -0
- package/rules/no-new-native-nonconstructor.cjs +42 -0
- package/rules/no-new-object.cjs +47 -0
- package/rules/no-new-require.cjs +50 -0
- package/rules/no-new-symbol.cjs +48 -0
- package/rules/no-new-wrappers.cjs +44 -0
- package/rules/no-new.cjs +33 -0
- package/rules/no-nonoctal-decimal-escape.cjs +80 -0
- package/rules/no-obj-calls.cjs +64 -0
- package/rules/no-object-constructor.cjs +69 -0
- package/rules/no-octal-escape.cjs +35 -0
- package/rules/no-octal.cjs +32 -0
- package/rules/no-param-reassign.cjs +135 -0
- package/rules/no-path-concat.cjs +52 -0
- package/rules/no-plusplus.cjs +64 -0
- package/rules/no-process-env.cjs +51 -0
- package/rules/no-process-exit.cjs +50 -0
- package/rules/no-promise-executor-return.cjs +131 -0
- package/rules/no-proto.cjs +34 -0
- package/rules/no-prototype-builtins.cjs +85 -0
- package/rules/no-redeclare.cjs +103 -0
- package/rules/no-regex-spaces.cjs +115 -0
- package/rules/no-restricted-exports.cjs +117 -0
- package/rules/no-restricted-globals.cjs +147 -0
- package/rules/no-restricted-imports.cjs +421 -0
- package/rules/no-restricted-modules.cjs +144 -0
- package/rules/no-restricted-properties.cjs +123 -0
- package/rules/no-restricted-syntax.cjs +49 -0
- package/rules/no-return-assign.cjs +45 -0
- package/rules/no-return-await.cjs +88 -0
- package/rules/no-script-url.cjs +49 -0
- package/rules/no-self-assign.cjs +88 -0
- package/rules/no-self-compare.cjs +53 -0
- package/rules/no-sequences.cjs +81 -0
- package/rules/no-setter-return.cjs +110 -0
- package/rules/no-shadow-restricted-names.cjs +60 -0
- package/rules/no-shadow.cjs +302 -0
- package/rules/no-spaced-func.cjs +69 -0
- package/rules/no-sparse-arrays.cjs +40 -0
- package/rules/no-sync.cjs +58 -0
- package/rules/no-tabs.cjs +73 -0
- package/rules/no-template-curly-in-string.cjs +33 -0
- package/rules/no-ternary.cjs +33 -0
- package/rules/no-this-before-super.cjs +177 -0
- package/rules/no-throw-literal.cjs +40 -0
- package/rules/no-trailing-spaces.cjs +123 -0
- package/rules/no-unassigned-vars.cjs +54 -0
- package/rules/no-undef-init.cjs +46 -0
- package/rules/no-undef.cjs +51 -0
- package/rules/no-undefined.cjs +58 -0
- package/rules/no-underscore-dangle.cjs +211 -0
- package/rules/no-unexpected-multiline.cjs +76 -0
- package/rules/no-unmodified-loop-condition.cjs +849 -0
- package/rules/no-unneeded-ternary.cjs +112 -0
- package/rules/no-unreachable-loop.cjs +128 -0
- package/rules/no-unreachable.cjs +195 -0
- package/rules/no-unsafe-finally.cjs +67 -0
- package/rules/no-unsafe-negation.cjs +86 -0
- package/rules/no-unsafe-optional-chaining.cjs +164 -0
- package/rules/no-unused-expressions.cjs +163 -0
- package/rules/no-unused-labels.cjs +97 -0
- package/rules/no-unused-private-class-members.cjs +69 -0
- package/rules/no-unused-vars.cjs +639 -0
- package/rules/no-use-before-define.cjs +245 -0
- package/rules/no-useless-assignment.cjs +250 -0
- package/rules/no-useless-backreference.cjs +137 -0
- package/rules/no-useless-call.cjs +57 -0
- package/rules/no-useless-catch.cjs +38 -0
- package/rules/no-useless-computed-key.cjs +106 -0
- package/rules/no-useless-concat.cjs +78 -0
- package/rules/no-useless-constructor.cjs +152 -0
- package/rules/no-useless-escape.cjs +164 -0
- package/rules/no-useless-rename.cjs +94 -0
- package/rules/no-useless-return.cjs +229 -0
- package/rules/no-var.cjs +235 -0
- package/rules/no-void.cjs +39 -0
- package/rules/no-warning-comments.cjs +112 -0
- package/rules/no-whitespace-before-property.cjs +72 -0
- package/rules/no-with.cjs +32 -0
- package/rules/nonblock-statement-body-position.cjs +107 -0
- package/rules/object-curly-newline.cjs +194 -0
- package/rules/object-curly-spacing.cjs +225 -0
- package/rules/object-property-newline.cjs +81 -0
- package/rules/object-shorthand.cjs +284 -0
- package/rules/one-var-declaration-per-line.cjs +75 -0
- package/rules/one-var.cjs +378 -0
- package/rules/operator-assignment.cjs +146 -0
- package/rules/operator-linebreak.cjs +150 -0
- package/rules/padded-blocks.cjs +192 -0
- package/rules/padding-line-between-statements.cjs +377 -0
- package/rules/prefer-arrow-callback.cjs +185 -0
- package/rules/prefer-const.cjs +240 -0
- package/rules/prefer-destructuring.cjs +188 -0
- package/rules/prefer-exponentiation-operator.cjs +100 -0
- package/rules/prefer-named-capture-group.cjs +111 -0
- package/rules/prefer-numeric-literals.cjs +75 -0
- package/rules/prefer-object-has-own.cjs +54 -0
- package/rules/prefer-object-spread.cjs +170 -0
- package/rules/prefer-promise-reject-errors.cjs +62 -0
- package/rules/prefer-reflect.cjs +100 -0
- package/rules/prefer-regex-literals.cjs +256 -0
- package/rules/prefer-rest-params.cjs +80 -0
- package/rules/prefer-spread.cjs +57 -0
- package/rules/prefer-template.cjs +147 -0
- package/rules/preserve-caught-error.cjs +196 -0
- package/rules/quote-props.cjs +224 -0
- package/rules/quotes.cjs +187 -0
- package/rules/radix.cjs +124 -0
- package/rules/require-atomic-updates.cjs +197 -0
- package/rules/require-await.cjs +90 -0
- package/rules/require-unicode-regexp.cjs +101 -0
- package/rules/require-yield.cjs +56 -0
- package/rules/rest-spread-spacing.cjs +99 -0
- package/rules/semi-spacing.cjs +215 -0
- package/rules/semi-style.cjs +116 -0
- package/rules/semi.cjs +239 -0
- package/rules/sort-imports.cjs +140 -0
- package/rules/sort-keys.cjs +165 -0
- package/rules/sort-vars.cjs +50 -0
- package/rules/space-before-blocks.cjs +132 -0
- package/rules/space-before-function-paren.cjs +126 -0
- package/rules/space-in-parens.cjs +175 -0
- package/rules/space-infix-ops.cjs +133 -0
- package/rules/space-unary-ops.cjs +237 -0
- package/rules/spaced-comment.cjs +233 -0
- package/rules/strict.cjs +206 -0
- package/rules/switch-colon-spacing.cjs +114 -0
- package/rules/symbol-description.cjs +49 -0
- package/rules/template-curly-spacing.cjs +112 -0
- package/rules/template-tag-spacing.cjs +82 -0
- package/rules/unicode-bom.cjs +52 -0
- package/rules/use-isnan.cjs +144 -0
- package/rules/valid-typeof.cjs +104 -0
- package/rules/vars-on-top.cjs +94 -0
- package/rules/wrap-iife.cjs +131 -0
- package/rules/wrap-regex.cjs +57 -0
- package/rules/yield-star-spacing.cjs +115 -0
- package/rules/yoda.cjs +185 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
|
|
2
|
+
//#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/space-in-parens.js
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Disallows or enforces spaces inside of parentheses.
|
|
5
|
+
* @author Jonathan Rajavuori
|
|
6
|
+
* @deprecated in ESLint v8.53.0
|
|
7
|
+
*/
|
|
8
|
+
var require_space_in_parens = /* @__PURE__ */ require_chunk.t(((exports, module) => {
|
|
9
|
+
let astUtils = require_ast_utils$1.t();
|
|
10
|
+
/** @type {import('../types').Rule.RuleModule} */
|
|
11
|
+
module.exports = {
|
|
12
|
+
meta: {
|
|
13
|
+
deprecated: {
|
|
14
|
+
message: "Formatting rules are being moved out of ESLint core.",
|
|
15
|
+
url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
|
|
16
|
+
deprecatedSince: "8.53.0",
|
|
17
|
+
availableUntil: "11.0.0",
|
|
18
|
+
replacedBy: [{
|
|
19
|
+
message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
|
|
20
|
+
url: "https://eslint.style/guide/migration",
|
|
21
|
+
plugin: {
|
|
22
|
+
name: "@stylistic/eslint-plugin",
|
|
23
|
+
url: "https://eslint.style"
|
|
24
|
+
},
|
|
25
|
+
rule: {
|
|
26
|
+
name: "space-in-parens",
|
|
27
|
+
url: "https://eslint.style/rules/space-in-parens"
|
|
28
|
+
}
|
|
29
|
+
}]
|
|
30
|
+
},
|
|
31
|
+
type: "layout",
|
|
32
|
+
docs: {
|
|
33
|
+
description: "Enforce consistent spacing inside parentheses",
|
|
34
|
+
recommended: !1,
|
|
35
|
+
url: "https://eslint.org/docs/latest/rules/space-in-parens"
|
|
36
|
+
},
|
|
37
|
+
fixable: "whitespace",
|
|
38
|
+
schema: [{ enum: ["always", "never"] }, {
|
|
39
|
+
type: "object",
|
|
40
|
+
properties: { exceptions: {
|
|
41
|
+
type: "array",
|
|
42
|
+
items: { enum: [
|
|
43
|
+
"{}",
|
|
44
|
+
"[]",
|
|
45
|
+
"()",
|
|
46
|
+
"empty"
|
|
47
|
+
] },
|
|
48
|
+
uniqueItems: !0
|
|
49
|
+
} },
|
|
50
|
+
additionalProperties: !1
|
|
51
|
+
}],
|
|
52
|
+
messages: {
|
|
53
|
+
missingOpeningSpace: "There must be a space after this paren.",
|
|
54
|
+
missingClosingSpace: "There must be a space before this paren.",
|
|
55
|
+
rejectedOpeningSpace: "There should be no space after this paren.",
|
|
56
|
+
rejectedClosingSpace: "There should be no space before this paren."
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
create(context) {
|
|
60
|
+
let ALWAYS = context.options[0] === "always", exceptionsArrayOptions = context.options[1] && context.options[1].exceptions || [], options = {}, exceptions;
|
|
61
|
+
exceptionsArrayOptions.length && (options.braceException = exceptionsArrayOptions.includes("{}"), options.bracketException = exceptionsArrayOptions.includes("[]"), options.parenException = exceptionsArrayOptions.includes("()"), options.empty = exceptionsArrayOptions.includes("empty"));
|
|
62
|
+
/**
|
|
63
|
+
* Produces an object with the opener and closer exception values
|
|
64
|
+
* @returns {Object} `openers` and `closers` exception values
|
|
65
|
+
* @private
|
|
66
|
+
*/
|
|
67
|
+
function getExceptions() {
|
|
68
|
+
let openers = [], closers = [];
|
|
69
|
+
return options.braceException && (openers.push("{"), closers.push("}")), options.bracketException && (openers.push("["), closers.push("]")), options.parenException && (openers.push("("), closers.push(")")), options.empty && (openers.push(")"), closers.push("(")), {
|
|
70
|
+
openers,
|
|
71
|
+
closers
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
let sourceCode = context.sourceCode;
|
|
75
|
+
/**
|
|
76
|
+
* Determines if a token is one of the exceptions for the opener paren
|
|
77
|
+
* @param {Object} token The token to check
|
|
78
|
+
* @returns {boolean} True if the token is one of the exceptions for the opener paren
|
|
79
|
+
*/
|
|
80
|
+
function isOpenerException(token) {
|
|
81
|
+
return exceptions.openers.includes(token.value);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Determines if a token is one of the exceptions for the closer paren
|
|
85
|
+
* @param {Object} token The token to check
|
|
86
|
+
* @returns {boolean} True if the token is one of the exceptions for the closer paren
|
|
87
|
+
*/
|
|
88
|
+
function isCloserException(token) {
|
|
89
|
+
return exceptions.closers.includes(token.value);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Determines if an opening paren is immediately followed by a required space
|
|
93
|
+
* @param {Object} openingParenToken The paren token
|
|
94
|
+
* @param {Object} tokenAfterOpeningParen The token after it
|
|
95
|
+
* @returns {boolean} True if the opening paren is missing a required space
|
|
96
|
+
*/
|
|
97
|
+
function openerMissingSpace(openingParenToken, tokenAfterOpeningParen) {
|
|
98
|
+
return sourceCode.isSpaceBetweenTokens(openingParenToken, tokenAfterOpeningParen) || !options.empty && astUtils.isClosingParenToken(tokenAfterOpeningParen) ? !1 : ALWAYS ? !isOpenerException(tokenAfterOpeningParen) : isOpenerException(tokenAfterOpeningParen);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Determines if an opening paren is immediately followed by a disallowed space
|
|
102
|
+
* @param {Object} openingParenToken The paren token
|
|
103
|
+
* @param {Object} tokenAfterOpeningParen The token after it
|
|
104
|
+
* @returns {boolean} True if the opening paren has a disallowed space
|
|
105
|
+
*/
|
|
106
|
+
function openerRejectsSpace(openingParenToken, tokenAfterOpeningParen) {
|
|
107
|
+
return !astUtils.isTokenOnSameLine(openingParenToken, tokenAfterOpeningParen) || tokenAfterOpeningParen.type === "Line" || !sourceCode.isSpaceBetweenTokens(openingParenToken, tokenAfterOpeningParen) ? !1 : ALWAYS ? isOpenerException(tokenAfterOpeningParen) : !isOpenerException(tokenAfterOpeningParen);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Determines if a closing paren is immediately preceded by a required space
|
|
111
|
+
* @param {Object} tokenBeforeClosingParen The token before the paren
|
|
112
|
+
* @param {Object} closingParenToken The paren token
|
|
113
|
+
* @returns {boolean} True if the closing paren is missing a required space
|
|
114
|
+
*/
|
|
115
|
+
function closerMissingSpace(tokenBeforeClosingParen, closingParenToken) {
|
|
116
|
+
return sourceCode.isSpaceBetweenTokens(tokenBeforeClosingParen, closingParenToken) || !options.empty && astUtils.isOpeningParenToken(tokenBeforeClosingParen) ? !1 : ALWAYS ? !isCloserException(tokenBeforeClosingParen) : isCloserException(tokenBeforeClosingParen);
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Determines if a closer paren is immediately preceded by a disallowed space
|
|
120
|
+
* @param {Object} tokenBeforeClosingParen The token before the paren
|
|
121
|
+
* @param {Object} closingParenToken The paren token
|
|
122
|
+
* @returns {boolean} True if the closing paren has a disallowed space
|
|
123
|
+
*/
|
|
124
|
+
function closerRejectsSpace(tokenBeforeClosingParen, closingParenToken) {
|
|
125
|
+
return !astUtils.isTokenOnSameLine(tokenBeforeClosingParen, closingParenToken) || !sourceCode.isSpaceBetweenTokens(tokenBeforeClosingParen, closingParenToken) ? !1 : ALWAYS ? isCloserException(tokenBeforeClosingParen) : !isCloserException(tokenBeforeClosingParen);
|
|
126
|
+
}
|
|
127
|
+
return { Program: function checkParenSpaces(node) {
|
|
128
|
+
exceptions = getExceptions();
|
|
129
|
+
let tokens = sourceCode.tokensAndComments;
|
|
130
|
+
tokens.forEach((token, i) => {
|
|
131
|
+
let prevToken = tokens[i - 1], nextToken = tokens[i + 1];
|
|
132
|
+
!astUtils.isOpeningParenToken(token) && !astUtils.isClosingParenToken(token) || (token.value === "(" && openerMissingSpace(token, nextToken) && context.report({
|
|
133
|
+
node,
|
|
134
|
+
loc: token.loc,
|
|
135
|
+
messageId: "missingOpeningSpace",
|
|
136
|
+
fix(fixer) {
|
|
137
|
+
return fixer.insertTextAfter(token, " ");
|
|
138
|
+
}
|
|
139
|
+
}), token.value === "(" && openerRejectsSpace(token, nextToken) && context.report({
|
|
140
|
+
node,
|
|
141
|
+
loc: {
|
|
142
|
+
start: token.loc.end,
|
|
143
|
+
end: nextToken.loc.start
|
|
144
|
+
},
|
|
145
|
+
messageId: "rejectedOpeningSpace",
|
|
146
|
+
fix(fixer) {
|
|
147
|
+
return fixer.removeRange([token.range[1], nextToken.range[0]]);
|
|
148
|
+
}
|
|
149
|
+
}), token.value === ")" && closerMissingSpace(prevToken, token) && context.report({
|
|
150
|
+
node,
|
|
151
|
+
loc: token.loc,
|
|
152
|
+
messageId: "missingClosingSpace",
|
|
153
|
+
fix(fixer) {
|
|
154
|
+
return fixer.insertTextBefore(token, " ");
|
|
155
|
+
}
|
|
156
|
+
}), token.value === ")" && closerRejectsSpace(prevToken, token) && context.report({
|
|
157
|
+
node,
|
|
158
|
+
loc: {
|
|
159
|
+
start: prevToken.loc.end,
|
|
160
|
+
end: token.loc.start
|
|
161
|
+
},
|
|
162
|
+
messageId: "rejectedClosingSpace",
|
|
163
|
+
fix(fixer) {
|
|
164
|
+
return fixer.removeRange([prevToken.range[1], token.range[0]]);
|
|
165
|
+
}
|
|
166
|
+
}));
|
|
167
|
+
});
|
|
168
|
+
} };
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
}));
|
|
172
|
+
//#endregion
|
|
173
|
+
//#region src-js/generated/plugin-eslint/rules/space-in-parens.cjs
|
|
174
|
+
module.exports = require_space_in_parens().create;
|
|
175
|
+
//#endregion
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
|
|
2
|
+
//#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/space-infix-ops.js
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Require spaces around infix operators
|
|
5
|
+
* @author Michael Ficarra
|
|
6
|
+
* @deprecated in ESLint v8.53.0
|
|
7
|
+
*/
|
|
8
|
+
var require_space_infix_ops = /* @__PURE__ */ require_chunk.t(((exports, module) => {
|
|
9
|
+
let { isEqToken } = require_ast_utils$1.t();
|
|
10
|
+
/** @type {import('../types').Rule.RuleModule} */
|
|
11
|
+
module.exports = {
|
|
12
|
+
meta: {
|
|
13
|
+
deprecated: {
|
|
14
|
+
message: "Formatting rules are being moved out of ESLint core.",
|
|
15
|
+
url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
|
|
16
|
+
deprecatedSince: "8.53.0",
|
|
17
|
+
availableUntil: "11.0.0",
|
|
18
|
+
replacedBy: [{
|
|
19
|
+
message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
|
|
20
|
+
url: "https://eslint.style/guide/migration",
|
|
21
|
+
plugin: {
|
|
22
|
+
name: "@stylistic/eslint-plugin",
|
|
23
|
+
url: "https://eslint.style"
|
|
24
|
+
},
|
|
25
|
+
rule: {
|
|
26
|
+
name: "space-infix-ops",
|
|
27
|
+
url: "https://eslint.style/rules/space-infix-ops"
|
|
28
|
+
}
|
|
29
|
+
}]
|
|
30
|
+
},
|
|
31
|
+
type: "layout",
|
|
32
|
+
docs: {
|
|
33
|
+
description: "Require spacing around infix operators",
|
|
34
|
+
recommended: !1,
|
|
35
|
+
url: "https://eslint.org/docs/latest/rules/space-infix-ops"
|
|
36
|
+
},
|
|
37
|
+
fixable: "whitespace",
|
|
38
|
+
schema: [{
|
|
39
|
+
type: "object",
|
|
40
|
+
properties: { int32Hint: {
|
|
41
|
+
type: "boolean",
|
|
42
|
+
default: !1
|
|
43
|
+
} },
|
|
44
|
+
additionalProperties: !1
|
|
45
|
+
}],
|
|
46
|
+
messages: { missingSpace: "Operator '{{operator}}' must be spaced." }
|
|
47
|
+
},
|
|
48
|
+
create(context) {
|
|
49
|
+
let int32Hint = context.options[0] ? context.options[0].int32Hint === !0 : !1, sourceCode = context.sourceCode;
|
|
50
|
+
/**
|
|
51
|
+
* Returns the first token which violates the rule
|
|
52
|
+
* @param {ASTNode} left The left node of the main node
|
|
53
|
+
* @param {ASTNode} right The right node of the main node
|
|
54
|
+
* @param {string} op The operator of the main node
|
|
55
|
+
* @returns {Object} The violator token or null
|
|
56
|
+
* @private
|
|
57
|
+
*/
|
|
58
|
+
function getFirstNonSpacedToken(left, right, op) {
|
|
59
|
+
let operator = sourceCode.getFirstTokenBetween(left, right, (token) => token.value === op), prev = sourceCode.getTokenBefore(operator), next = sourceCode.getTokenAfter(operator);
|
|
60
|
+
return !sourceCode.isSpaceBetweenTokens(prev, operator) || !sourceCode.isSpaceBetweenTokens(operator, next) ? operator : null;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Reports an AST node as a rule violation
|
|
64
|
+
* @param {ASTNode} mainNode The node to report
|
|
65
|
+
* @param {Object} culpritToken The token which has a problem
|
|
66
|
+
* @returns {void}
|
|
67
|
+
* @private
|
|
68
|
+
*/
|
|
69
|
+
function report(mainNode, culpritToken) {
|
|
70
|
+
context.report({
|
|
71
|
+
node: mainNode,
|
|
72
|
+
loc: culpritToken.loc,
|
|
73
|
+
messageId: "missingSpace",
|
|
74
|
+
data: { operator: culpritToken.value },
|
|
75
|
+
fix(fixer) {
|
|
76
|
+
let previousToken = sourceCode.getTokenBefore(culpritToken), afterToken = sourceCode.getTokenAfter(culpritToken), fixString = "";
|
|
77
|
+
return culpritToken.range[0] - previousToken.range[1] === 0 && (fixString = " "), fixString += culpritToken.value, afterToken.range[0] - culpritToken.range[1] === 0 && (fixString += " "), fixer.replaceText(culpritToken, fixString);
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Check if the node is binary then report
|
|
83
|
+
* @param {ASTNode} node node to evaluate
|
|
84
|
+
* @returns {void}
|
|
85
|
+
* @private
|
|
86
|
+
*/
|
|
87
|
+
function checkBinary(node) {
|
|
88
|
+
let leftNode = node.left.typeAnnotation ? node.left.typeAnnotation : node.left, rightNode = node.right, nonSpacedNode = getFirstNonSpacedToken(leftNode, rightNode, node.operator || "=");
|
|
89
|
+
nonSpacedNode && (int32Hint && sourceCode.getText(node).endsWith("|0") || report(node, nonSpacedNode));
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Check if the node is conditional
|
|
93
|
+
* @param {ASTNode} node node to evaluate
|
|
94
|
+
* @returns {void}
|
|
95
|
+
* @private
|
|
96
|
+
*/
|
|
97
|
+
function checkConditional(node) {
|
|
98
|
+
let nonSpacedConsequentNode = getFirstNonSpacedToken(node.test, node.consequent, "?"), nonSpacedAlternateNode = getFirstNonSpacedToken(node.consequent, node.alternate, ":");
|
|
99
|
+
nonSpacedConsequentNode && report(node, nonSpacedConsequentNode), nonSpacedAlternateNode && report(node, nonSpacedAlternateNode);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Check if the node is a variable
|
|
103
|
+
* @param {ASTNode} node node to evaluate
|
|
104
|
+
* @returns {void}
|
|
105
|
+
* @private
|
|
106
|
+
*/
|
|
107
|
+
function checkVar(node) {
|
|
108
|
+
let leftNode = node.id.typeAnnotation ? node.id.typeAnnotation : node.id, rightNode = node.init;
|
|
109
|
+
if (rightNode) {
|
|
110
|
+
let nonSpacedNode = getFirstNonSpacedToken(leftNode, rightNode, "=");
|
|
111
|
+
nonSpacedNode && report(node, nonSpacedNode);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
AssignmentExpression: checkBinary,
|
|
116
|
+
AssignmentPattern: checkBinary,
|
|
117
|
+
BinaryExpression: checkBinary,
|
|
118
|
+
LogicalExpression: checkBinary,
|
|
119
|
+
ConditionalExpression: checkConditional,
|
|
120
|
+
VariableDeclarator: checkVar,
|
|
121
|
+
PropertyDefinition(node) {
|
|
122
|
+
if (!node.value) return;
|
|
123
|
+
let operatorToken = sourceCode.getTokenBefore(node.value, isEqToken), leftToken = sourceCode.getTokenBefore(operatorToken), rightToken = sourceCode.getTokenAfter(operatorToken);
|
|
124
|
+
(!sourceCode.isSpaceBetweenTokens(leftToken, operatorToken) || !sourceCode.isSpaceBetweenTokens(operatorToken, rightToken)) && report(node, operatorToken);
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
}));
|
|
130
|
+
//#endregion
|
|
131
|
+
//#region src-js/generated/plugin-eslint/rules/space-infix-ops.cjs
|
|
132
|
+
module.exports = require_space_infix_ops().create;
|
|
133
|
+
//#endregion
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
const require_chunk = require("../common/chunk.cjs"), require_ast_utils$1 = require("../common/ast-utils.cjs");
|
|
2
|
+
//#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/space-unary-ops.js
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview This rule should require or disallow spaces before or after unary operations.
|
|
5
|
+
* @author Marcin Kumorek
|
|
6
|
+
* @deprecated in ESLint v8.53.0
|
|
7
|
+
*/
|
|
8
|
+
var require_space_unary_ops = /* @__PURE__ */ require_chunk.t(((exports, module) => {
|
|
9
|
+
let astUtils = require_ast_utils$1.t();
|
|
10
|
+
/** @type {import('../types').Rule.RuleModule} */
|
|
11
|
+
module.exports = {
|
|
12
|
+
meta: {
|
|
13
|
+
deprecated: {
|
|
14
|
+
message: "Formatting rules are being moved out of ESLint core.",
|
|
15
|
+
url: "https://eslint.org/blog/2023/10/deprecating-formatting-rules/",
|
|
16
|
+
deprecatedSince: "8.53.0",
|
|
17
|
+
availableUntil: "11.0.0",
|
|
18
|
+
replacedBy: [{
|
|
19
|
+
message: "ESLint Stylistic now maintains deprecated stylistic core rules.",
|
|
20
|
+
url: "https://eslint.style/guide/migration",
|
|
21
|
+
plugin: {
|
|
22
|
+
name: "@stylistic/eslint-plugin",
|
|
23
|
+
url: "https://eslint.style"
|
|
24
|
+
},
|
|
25
|
+
rule: {
|
|
26
|
+
name: "space-unary-ops",
|
|
27
|
+
url: "https://eslint.style/rules/space-unary-ops"
|
|
28
|
+
}
|
|
29
|
+
}]
|
|
30
|
+
},
|
|
31
|
+
type: "layout",
|
|
32
|
+
docs: {
|
|
33
|
+
description: "Enforce consistent spacing before or after unary operators",
|
|
34
|
+
recommended: !1,
|
|
35
|
+
url: "https://eslint.org/docs/latest/rules/space-unary-ops"
|
|
36
|
+
},
|
|
37
|
+
fixable: "whitespace",
|
|
38
|
+
schema: [{
|
|
39
|
+
type: "object",
|
|
40
|
+
properties: {
|
|
41
|
+
words: {
|
|
42
|
+
type: "boolean",
|
|
43
|
+
default: !0
|
|
44
|
+
},
|
|
45
|
+
nonwords: {
|
|
46
|
+
type: "boolean",
|
|
47
|
+
default: !1
|
|
48
|
+
},
|
|
49
|
+
overrides: {
|
|
50
|
+
type: "object",
|
|
51
|
+
additionalProperties: { type: "boolean" }
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
additionalProperties: !1
|
|
55
|
+
}],
|
|
56
|
+
messages: {
|
|
57
|
+
unexpectedBefore: "Unexpected space before unary operator '{{operator}}'.",
|
|
58
|
+
unexpectedAfter: "Unexpected space after unary operator '{{operator}}'.",
|
|
59
|
+
unexpectedAfterWord: "Unexpected space after unary word operator '{{word}}'.",
|
|
60
|
+
wordOperator: "Unary word operator '{{word}}' must be followed by whitespace.",
|
|
61
|
+
operator: "Unary operator '{{operator}}' must be followed by whitespace.",
|
|
62
|
+
beforeUnaryExpressions: "Space is required before unary expressions '{{token}}'."
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
create(context) {
|
|
66
|
+
let options = context.options[0] || {
|
|
67
|
+
words: !0,
|
|
68
|
+
nonwords: !1
|
|
69
|
+
}, sourceCode = context.sourceCode;
|
|
70
|
+
/**
|
|
71
|
+
* Check if the node is the first "!" in a "!!" convert to Boolean expression
|
|
72
|
+
* @param {ASTnode} node AST node
|
|
73
|
+
* @returns {boolean} Whether or not the node is first "!" in "!!"
|
|
74
|
+
*/
|
|
75
|
+
function isFirstBangInBangBangExpression(node) {
|
|
76
|
+
return node && node.type === "UnaryExpression" && node.argument.operator === "!" && node.argument && node.argument.type === "UnaryExpression" && node.argument.operator === "!";
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Checks if an override exists for a given operator.
|
|
80
|
+
* @param {string} operator Operator
|
|
81
|
+
* @returns {boolean} Whether or not an override has been provided for the operator
|
|
82
|
+
*/
|
|
83
|
+
function overrideExistsForOperator(operator) {
|
|
84
|
+
return options.overrides && Object.hasOwn(options.overrides, operator);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Gets the value that the override was set to for this operator
|
|
88
|
+
* @param {string} operator Operator
|
|
89
|
+
* @returns {boolean} Whether or not an override enforces a space with this operator
|
|
90
|
+
*/
|
|
91
|
+
function overrideEnforcesSpaces(operator) {
|
|
92
|
+
return options.overrides[operator];
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Verify Unary Word Operator has spaces after the word operator
|
|
96
|
+
* @param {ASTnode} node AST node
|
|
97
|
+
* @param {Object} firstToken first token from the AST node
|
|
98
|
+
* @param {Object} secondToken second token from the AST node
|
|
99
|
+
* @param {string} word The word to be used for reporting
|
|
100
|
+
* @returns {void}
|
|
101
|
+
*/
|
|
102
|
+
function verifyWordHasSpaces(node, firstToken, secondToken, word) {
|
|
103
|
+
secondToken.range[0] === firstToken.range[1] && context.report({
|
|
104
|
+
node,
|
|
105
|
+
messageId: "wordOperator",
|
|
106
|
+
data: { word },
|
|
107
|
+
fix(fixer) {
|
|
108
|
+
return fixer.insertTextAfter(firstToken, " ");
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Verify Unary Word Operator doesn't have spaces after the word operator
|
|
114
|
+
* @param {ASTnode} node AST node
|
|
115
|
+
* @param {Object} firstToken first token from the AST node
|
|
116
|
+
* @param {Object} secondToken second token from the AST node
|
|
117
|
+
* @param {string} word The word to be used for reporting
|
|
118
|
+
* @returns {void}
|
|
119
|
+
*/
|
|
120
|
+
function verifyWordDoesntHaveSpaces(node, firstToken, secondToken, word) {
|
|
121
|
+
astUtils.canTokensBeAdjacent(firstToken, secondToken) && secondToken.range[0] > firstToken.range[1] && context.report({
|
|
122
|
+
node,
|
|
123
|
+
messageId: "unexpectedAfterWord",
|
|
124
|
+
data: { word },
|
|
125
|
+
fix(fixer) {
|
|
126
|
+
return fixer.removeRange([firstToken.range[1], secondToken.range[0]]);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Check Unary Word Operators for spaces after the word operator
|
|
132
|
+
* @param {ASTnode} node AST node
|
|
133
|
+
* @param {Object} firstToken first token from the AST node
|
|
134
|
+
* @param {Object} secondToken second token from the AST node
|
|
135
|
+
* @param {string} word The word to be used for reporting
|
|
136
|
+
* @returns {void}
|
|
137
|
+
*/
|
|
138
|
+
function checkUnaryWordOperatorForSpaces(node, firstToken, secondToken, word) {
|
|
139
|
+
overrideExistsForOperator(word) ? overrideEnforcesSpaces(word) ? verifyWordHasSpaces(node, firstToken, secondToken, word) : verifyWordDoesntHaveSpaces(node, firstToken, secondToken, word) : options.words ? verifyWordHasSpaces(node, firstToken, secondToken, word) : verifyWordDoesntHaveSpaces(node, firstToken, secondToken, word);
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Verifies YieldExpressions satisfy spacing requirements
|
|
143
|
+
* @param {ASTnode} node AST node
|
|
144
|
+
* @returns {void}
|
|
145
|
+
*/
|
|
146
|
+
function checkForSpacesAfterYield(node) {
|
|
147
|
+
let tokens = sourceCode.getFirstTokens(node, 3);
|
|
148
|
+
!node.argument || node.delegate || checkUnaryWordOperatorForSpaces(node, tokens[0], tokens[1], "yield");
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Verifies AwaitExpressions satisfy spacing requirements
|
|
152
|
+
* @param {ASTNode} node AwaitExpression AST node
|
|
153
|
+
* @returns {void}
|
|
154
|
+
*/
|
|
155
|
+
function checkForSpacesAfterAwait(node) {
|
|
156
|
+
let tokens = sourceCode.getFirstTokens(node, 3);
|
|
157
|
+
checkUnaryWordOperatorForSpaces(node, tokens[0], tokens[1], "await");
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Verifies UnaryExpression, UpdateExpression and NewExpression have spaces before or after the operator
|
|
161
|
+
* @param {ASTnode} node AST node
|
|
162
|
+
* @param {Object} firstToken First token in the expression
|
|
163
|
+
* @param {Object} secondToken Second token in the expression
|
|
164
|
+
* @returns {void}
|
|
165
|
+
*/
|
|
166
|
+
function verifyNonWordsHaveSpaces(node, firstToken, secondToken) {
|
|
167
|
+
if (node.prefix) {
|
|
168
|
+
if (isFirstBangInBangBangExpression(node)) return;
|
|
169
|
+
firstToken.range[1] === secondToken.range[0] && context.report({
|
|
170
|
+
node,
|
|
171
|
+
messageId: "operator",
|
|
172
|
+
data: { operator: firstToken.value },
|
|
173
|
+
fix(fixer) {
|
|
174
|
+
return fixer.insertTextAfter(firstToken, " ");
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
} else firstToken.range[1] === secondToken.range[0] && context.report({
|
|
178
|
+
node,
|
|
179
|
+
messageId: "beforeUnaryExpressions",
|
|
180
|
+
data: { token: secondToken.value },
|
|
181
|
+
fix(fixer) {
|
|
182
|
+
return fixer.insertTextBefore(secondToken, " ");
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Verifies UnaryExpression, UpdateExpression and NewExpression don't have spaces before or after the operator
|
|
188
|
+
* @param {ASTnode} node AST node
|
|
189
|
+
* @param {Object} firstToken First token in the expression
|
|
190
|
+
* @param {Object} secondToken Second token in the expression
|
|
191
|
+
* @returns {void}
|
|
192
|
+
*/
|
|
193
|
+
function verifyNonWordsDontHaveSpaces(node, firstToken, secondToken) {
|
|
194
|
+
node.prefix ? secondToken.range[0] > firstToken.range[1] && context.report({
|
|
195
|
+
node,
|
|
196
|
+
messageId: "unexpectedAfter",
|
|
197
|
+
data: { operator: firstToken.value },
|
|
198
|
+
fix(fixer) {
|
|
199
|
+
return astUtils.canTokensBeAdjacent(firstToken, secondToken) ? fixer.removeRange([firstToken.range[1], secondToken.range[0]]) : null;
|
|
200
|
+
}
|
|
201
|
+
}) : secondToken.range[0] > firstToken.range[1] && context.report({
|
|
202
|
+
node,
|
|
203
|
+
messageId: "unexpectedBefore",
|
|
204
|
+
data: { operator: secondToken.value },
|
|
205
|
+
fix(fixer) {
|
|
206
|
+
return fixer.removeRange([firstToken.range[1], secondToken.range[0]]);
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Verifies UnaryExpression, UpdateExpression and NewExpression satisfy spacing requirements
|
|
212
|
+
* @param {ASTnode} node AST node
|
|
213
|
+
* @returns {void}
|
|
214
|
+
*/
|
|
215
|
+
function checkForSpaces(node) {
|
|
216
|
+
let tokens = node.type === "UpdateExpression" && !node.prefix ? sourceCode.getLastTokens(node, 2) : sourceCode.getFirstTokens(node, 2), firstToken = tokens[0], secondToken = tokens[1];
|
|
217
|
+
if ((node.type === "NewExpression" || node.prefix) && firstToken.type === "Keyword") {
|
|
218
|
+
checkUnaryWordOperatorForSpaces(node, firstToken, secondToken, firstToken.value);
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
let operator = node.prefix ? tokens[0].value : tokens[1].value;
|
|
222
|
+
overrideExistsForOperator(operator) ? overrideEnforcesSpaces(operator) ? verifyNonWordsHaveSpaces(node, firstToken, secondToken) : verifyNonWordsDontHaveSpaces(node, firstToken, secondToken) : options.nonwords ? verifyNonWordsHaveSpaces(node, firstToken, secondToken) : verifyNonWordsDontHaveSpaces(node, firstToken, secondToken);
|
|
223
|
+
}
|
|
224
|
+
return {
|
|
225
|
+
UnaryExpression: checkForSpaces,
|
|
226
|
+
UpdateExpression: checkForSpaces,
|
|
227
|
+
NewExpression: checkForSpaces,
|
|
228
|
+
YieldExpression: checkForSpacesAfterYield,
|
|
229
|
+
AwaitExpression: checkForSpacesAfterAwait
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
};
|
|
233
|
+
}));
|
|
234
|
+
//#endregion
|
|
235
|
+
//#region src-js/generated/plugin-eslint/rules/space-unary-ops.cjs
|
|
236
|
+
module.exports = require_space_unary_ops().create;
|
|
237
|
+
//#endregion
|