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,58 @@
|
|
|
1
|
+
//#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-undefined.js
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Rule to flag references to the undefined variable.
|
|
4
|
+
* @author Michael Ficarra
|
|
5
|
+
*/
|
|
6
|
+
var require_no_undefined = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
|
|
7
|
+
/** @type {import('../types').Rule.RuleModule} */
|
|
8
|
+
module.exports = {
|
|
9
|
+
meta: {
|
|
10
|
+
type: "suggestion",
|
|
11
|
+
docs: {
|
|
12
|
+
description: "Disallow the use of `undefined` as an identifier",
|
|
13
|
+
recommended: !1,
|
|
14
|
+
frozen: !0,
|
|
15
|
+
url: "https://eslint.org/docs/latest/rules/no-undefined"
|
|
16
|
+
},
|
|
17
|
+
schema: [],
|
|
18
|
+
messages: { unexpectedUndefined: "Unexpected use of undefined." }
|
|
19
|
+
},
|
|
20
|
+
create(context) {
|
|
21
|
+
let sourceCode = context.sourceCode;
|
|
22
|
+
/**
|
|
23
|
+
* Report an invalid "undefined" identifier node.
|
|
24
|
+
* @param {ASTNode} node The node to report.
|
|
25
|
+
* @returns {void}
|
|
26
|
+
*/
|
|
27
|
+
function report(node) {
|
|
28
|
+
context.report({
|
|
29
|
+
node,
|
|
30
|
+
messageId: "unexpectedUndefined"
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Checks the given scope for references to `undefined` and reports
|
|
35
|
+
* all references found.
|
|
36
|
+
* @param {eslint-scope.Scope} scope The scope to check.
|
|
37
|
+
* @returns {void}
|
|
38
|
+
*/
|
|
39
|
+
function checkScope(scope) {
|
|
40
|
+
let undefinedVar = scope.set.get("undefined");
|
|
41
|
+
if (!undefinedVar) return;
|
|
42
|
+
let references = undefinedVar.references, defs = undefinedVar.defs;
|
|
43
|
+
references.filter((ref) => !ref.init).forEach((ref) => report(ref.identifier)), defs.forEach((def) => report(def.name));
|
|
44
|
+
}
|
|
45
|
+
return { "Program:exit"(node) {
|
|
46
|
+
let stack = [sourceCode.getScope(node)];
|
|
47
|
+
for (; stack.length;) {
|
|
48
|
+
let scope = stack.pop();
|
|
49
|
+
stack.push(...scope.childScopes), checkScope(scope);
|
|
50
|
+
}
|
|
51
|
+
} };
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
}));
|
|
55
|
+
//#endregion
|
|
56
|
+
//#region src-js/generated/plugin-eslint/rules/no-undefined.cjs
|
|
57
|
+
module.exports = require_no_undefined().create;
|
|
58
|
+
//#endregion
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
//#region ../../node_modules/.pnpm/eslint@9.39.3_jiti@2.6.1/node_modules/eslint/lib/rules/no-underscore-dangle.js
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Rule to flag dangling underscores in variable declarations.
|
|
4
|
+
* @author Matt DuVall <http://www.mattduvall.com>
|
|
5
|
+
*/
|
|
6
|
+
var require_no_underscore_dangle = /* @__PURE__ */ require("../common/chunk.cjs").t(((exports, module) => {
|
|
7
|
+
/** @type {import('../types').Rule.RuleModule} */
|
|
8
|
+
module.exports = {
|
|
9
|
+
meta: {
|
|
10
|
+
type: "suggestion",
|
|
11
|
+
defaultOptions: [{
|
|
12
|
+
allow: [],
|
|
13
|
+
allowAfterSuper: !1,
|
|
14
|
+
allowAfterThis: !1,
|
|
15
|
+
allowAfterThisConstructor: !1,
|
|
16
|
+
allowFunctionParams: !0,
|
|
17
|
+
allowInArrayDestructuring: !0,
|
|
18
|
+
allowInObjectDestructuring: !0,
|
|
19
|
+
enforceInClassFields: !1,
|
|
20
|
+
enforceInMethodNames: !1
|
|
21
|
+
}],
|
|
22
|
+
docs: {
|
|
23
|
+
description: "Disallow dangling underscores in identifiers",
|
|
24
|
+
recommended: !1,
|
|
25
|
+
frozen: !0,
|
|
26
|
+
url: "https://eslint.org/docs/latest/rules/no-underscore-dangle"
|
|
27
|
+
},
|
|
28
|
+
schema: [{
|
|
29
|
+
type: "object",
|
|
30
|
+
properties: {
|
|
31
|
+
allow: {
|
|
32
|
+
type: "array",
|
|
33
|
+
items: { type: "string" }
|
|
34
|
+
},
|
|
35
|
+
allowAfterThis: { type: "boolean" },
|
|
36
|
+
allowAfterSuper: { type: "boolean" },
|
|
37
|
+
allowAfterThisConstructor: { type: "boolean" },
|
|
38
|
+
enforceInMethodNames: { type: "boolean" },
|
|
39
|
+
allowFunctionParams: { type: "boolean" },
|
|
40
|
+
enforceInClassFields: { type: "boolean" },
|
|
41
|
+
allowInArrayDestructuring: { type: "boolean" },
|
|
42
|
+
allowInObjectDestructuring: { type: "boolean" }
|
|
43
|
+
},
|
|
44
|
+
additionalProperties: !1
|
|
45
|
+
}],
|
|
46
|
+
messages: { unexpectedUnderscore: "Unexpected dangling '_' in '{{identifier}}'." }
|
|
47
|
+
},
|
|
48
|
+
create(context) {
|
|
49
|
+
let [{ allow, allowAfterSuper, allowAfterThis, allowAfterThisConstructor, allowFunctionParams, allowInArrayDestructuring, allowInObjectDestructuring, enforceInClassFields, enforceInMethodNames }] = context.options, sourceCode = context.sourceCode;
|
|
50
|
+
/**
|
|
51
|
+
* Check if identifier is present inside the allowed option
|
|
52
|
+
* @param {string} identifier name of the node
|
|
53
|
+
* @returns {boolean} true if its is present
|
|
54
|
+
* @private
|
|
55
|
+
*/
|
|
56
|
+
function isAllowed(identifier) {
|
|
57
|
+
return allow.includes(identifier);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check if identifier has a dangling underscore
|
|
61
|
+
* @param {string} identifier name of the node
|
|
62
|
+
* @returns {boolean} true if its is present
|
|
63
|
+
* @private
|
|
64
|
+
*/
|
|
65
|
+
function hasDanglingUnderscore(identifier) {
|
|
66
|
+
let len = identifier.length;
|
|
67
|
+
return identifier !== "_" && (identifier[0] === "_" || identifier[len - 1] === "_");
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Check if identifier is a special case member expression
|
|
71
|
+
* @param {string} identifier name of the node
|
|
72
|
+
* @returns {boolean} true if its is a special case
|
|
73
|
+
* @private
|
|
74
|
+
*/
|
|
75
|
+
function isSpecialCaseIdentifierForMemberExpression(identifier) {
|
|
76
|
+
return identifier === "__proto__";
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Check if identifier is a special case variable expression
|
|
80
|
+
* @param {string} identifier name of the node
|
|
81
|
+
* @returns {boolean} true if its is a special case
|
|
82
|
+
* @private
|
|
83
|
+
*/
|
|
84
|
+
function isSpecialCaseIdentifierInVariableExpression(identifier) {
|
|
85
|
+
return identifier === "_";
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Check if a node is a member reference of this.constructor
|
|
89
|
+
* @param {ASTNode} node node to evaluate
|
|
90
|
+
* @returns {boolean} true if it is a reference on this.constructor
|
|
91
|
+
* @private
|
|
92
|
+
*/
|
|
93
|
+
function isThisConstructorReference(node) {
|
|
94
|
+
return node.object.type === "MemberExpression" && node.object.property.name === "constructor" && node.object.object.type === "ThisExpression";
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Check if function parameter has a dangling underscore.
|
|
98
|
+
* @param {ASTNode} node function node to evaluate
|
|
99
|
+
* @returns {void}
|
|
100
|
+
* @private
|
|
101
|
+
*/
|
|
102
|
+
function checkForDanglingUnderscoreInFunctionParameters(node) {
|
|
103
|
+
allowFunctionParams || node.params.forEach((param) => {
|
|
104
|
+
let { type } = param, nodeToCheck;
|
|
105
|
+
if (nodeToCheck = type === "RestElement" ? param.argument : type === "AssignmentPattern" ? param.left : param, nodeToCheck.type === "Identifier") {
|
|
106
|
+
let identifier = nodeToCheck.name;
|
|
107
|
+
hasDanglingUnderscore(identifier) && !isAllowed(identifier) && context.report({
|
|
108
|
+
node: param,
|
|
109
|
+
messageId: "unexpectedUnderscore",
|
|
110
|
+
data: { identifier }
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Check if function has a dangling underscore
|
|
117
|
+
* @param {ASTNode} node node to evaluate
|
|
118
|
+
* @returns {void}
|
|
119
|
+
* @private
|
|
120
|
+
*/
|
|
121
|
+
function checkForDanglingUnderscoreInFunction(node) {
|
|
122
|
+
if (node.type === "FunctionDeclaration" && node.id) {
|
|
123
|
+
let identifier = node.id.name;
|
|
124
|
+
identifier !== void 0 && hasDanglingUnderscore(identifier) && !isAllowed(identifier) && context.report({
|
|
125
|
+
node,
|
|
126
|
+
messageId: "unexpectedUnderscore",
|
|
127
|
+
data: { identifier }
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
checkForDanglingUnderscoreInFunctionParameters(node);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Check if variable expression has a dangling underscore
|
|
134
|
+
* @param {ASTNode} node node to evaluate
|
|
135
|
+
* @returns {void}
|
|
136
|
+
* @private
|
|
137
|
+
*/
|
|
138
|
+
function checkForDanglingUnderscoreInVariableExpression(node) {
|
|
139
|
+
sourceCode.getDeclaredVariables(node).forEach((variable) => {
|
|
140
|
+
let identifierNode = variable.defs.find((def) => def.node === node).name, identifier = identifierNode.name, parent = identifierNode.parent;
|
|
141
|
+
for (; ![
|
|
142
|
+
"VariableDeclarator",
|
|
143
|
+
"ArrayPattern",
|
|
144
|
+
"ObjectPattern"
|
|
145
|
+
].includes(parent.type);) parent = parent.parent;
|
|
146
|
+
hasDanglingUnderscore(identifier) && !isSpecialCaseIdentifierInVariableExpression(identifier) && !isAllowed(identifier) && !(allowInArrayDestructuring && parent.type === "ArrayPattern") && !(allowInObjectDestructuring && parent.type === "ObjectPattern") && context.report({
|
|
147
|
+
node,
|
|
148
|
+
messageId: "unexpectedUnderscore",
|
|
149
|
+
data: { identifier }
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Check if member expression has a dangling underscore
|
|
155
|
+
* @param {ASTNode} node node to evaluate
|
|
156
|
+
* @returns {void}
|
|
157
|
+
* @private
|
|
158
|
+
*/
|
|
159
|
+
function checkForDanglingUnderscoreInMemberExpression(node) {
|
|
160
|
+
let identifier = node.property.name, isMemberOfThis = node.object.type === "ThisExpression", isMemberOfSuper = node.object.type === "Super", isMemberOfThisConstructor = isThisConstructorReference(node);
|
|
161
|
+
identifier !== void 0 && hasDanglingUnderscore(identifier) && !(isMemberOfThis && allowAfterThis) && !(isMemberOfSuper && allowAfterSuper) && !(isMemberOfThisConstructor && allowAfterThisConstructor) && !isSpecialCaseIdentifierForMemberExpression(identifier) && !isAllowed(identifier) && context.report({
|
|
162
|
+
node,
|
|
163
|
+
messageId: "unexpectedUnderscore",
|
|
164
|
+
data: { identifier }
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Check if method declaration or method property has a dangling underscore
|
|
169
|
+
* @param {ASTNode} node node to evaluate
|
|
170
|
+
* @returns {void}
|
|
171
|
+
* @private
|
|
172
|
+
*/
|
|
173
|
+
function checkForDanglingUnderscoreInMethod(node) {
|
|
174
|
+
let identifier = node.key.name, isMethod = node.type === "MethodDefinition" || node.type === "Property" && node.method;
|
|
175
|
+
identifier !== void 0 && enforceInMethodNames && isMethod && hasDanglingUnderscore(identifier) && !isAllowed(identifier) && context.report({
|
|
176
|
+
node,
|
|
177
|
+
messageId: "unexpectedUnderscore",
|
|
178
|
+
data: { identifier: node.key.type === "PrivateIdentifier" ? `#${identifier}` : identifier }
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Check if a class field has a dangling underscore
|
|
183
|
+
* @param {ASTNode} node node to evaluate
|
|
184
|
+
* @returns {void}
|
|
185
|
+
* @private
|
|
186
|
+
*/
|
|
187
|
+
function checkForDanglingUnderscoreInClassField(node) {
|
|
188
|
+
let identifier = node.key.name;
|
|
189
|
+
identifier !== void 0 && hasDanglingUnderscore(identifier) && enforceInClassFields && !isAllowed(identifier) && context.report({
|
|
190
|
+
node,
|
|
191
|
+
messageId: "unexpectedUnderscore",
|
|
192
|
+
data: { identifier: node.key.type === "PrivateIdentifier" ? `#${identifier}` : identifier }
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
return {
|
|
196
|
+
FunctionDeclaration: checkForDanglingUnderscoreInFunction,
|
|
197
|
+
VariableDeclarator: checkForDanglingUnderscoreInVariableExpression,
|
|
198
|
+
MemberExpression: checkForDanglingUnderscoreInMemberExpression,
|
|
199
|
+
MethodDefinition: checkForDanglingUnderscoreInMethod,
|
|
200
|
+
PropertyDefinition: checkForDanglingUnderscoreInClassField,
|
|
201
|
+
Property: checkForDanglingUnderscoreInMethod,
|
|
202
|
+
FunctionExpression: checkForDanglingUnderscoreInFunction,
|
|
203
|
+
ArrowFunctionExpression: checkForDanglingUnderscoreInFunction
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
}));
|
|
208
|
+
//#endregion
|
|
209
|
+
//#region src-js/generated/plugin-eslint/rules/no-underscore-dangle.cjs
|
|
210
|
+
module.exports = require_no_underscore_dangle().create;
|
|
211
|
+
//#endregion
|
|
@@ -0,0 +1,76 @@
|
|
|
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/no-unexpected-multiline.js
|
|
3
|
+
/**
|
|
4
|
+
* @fileoverview Rule to spot scenarios where a newline looks like it is ending a statement, but is not.
|
|
5
|
+
* @author Glen Mailer
|
|
6
|
+
*/
|
|
7
|
+
var require_no_unexpected_multiline = /* @__PURE__ */ require_chunk.t(((exports, module) => {
|
|
8
|
+
let astUtils = require_ast_utils$1.t();
|
|
9
|
+
/** @type {import('../types').Rule.RuleModule} */
|
|
10
|
+
module.exports = {
|
|
11
|
+
meta: {
|
|
12
|
+
type: "problem",
|
|
13
|
+
docs: {
|
|
14
|
+
description: "Disallow confusing multiline expressions",
|
|
15
|
+
recommended: !0,
|
|
16
|
+
url: "https://eslint.org/docs/latest/rules/no-unexpected-multiline"
|
|
17
|
+
},
|
|
18
|
+
schema: [],
|
|
19
|
+
messages: {
|
|
20
|
+
function: "Unexpected newline between function and ( of function call.",
|
|
21
|
+
property: "Unexpected newline between object and [ of property access.",
|
|
22
|
+
taggedTemplate: "Unexpected newline between template tag and template literal.",
|
|
23
|
+
division: "Unexpected newline between numerator and division operator."
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
create(context) {
|
|
27
|
+
let REGEX_FLAG_MATCHER = /^[gimsuy]+$/u, sourceCode = context.sourceCode;
|
|
28
|
+
/**
|
|
29
|
+
* Check to see if there is a newline between the node and the following open bracket
|
|
30
|
+
* line's expression
|
|
31
|
+
* @param {ASTNode} node The node to check.
|
|
32
|
+
* @param {string} messageId The error messageId to use.
|
|
33
|
+
* @returns {void}
|
|
34
|
+
* @private
|
|
35
|
+
*/
|
|
36
|
+
function checkForBreakAfter(node, messageId) {
|
|
37
|
+
let openParen = sourceCode.getTokenAfter(node, astUtils.isNotClosingParenToken), nodeExpressionEnd = sourceCode.getTokenBefore(openParen);
|
|
38
|
+
openParen.loc.start.line !== nodeExpressionEnd.loc.end.line && context.report({
|
|
39
|
+
node,
|
|
40
|
+
loc: openParen.loc,
|
|
41
|
+
messageId
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
MemberExpression(node) {
|
|
46
|
+
!node.computed || node.optional || checkForBreakAfter(node.object, "property");
|
|
47
|
+
},
|
|
48
|
+
TaggedTemplateExpression(node) {
|
|
49
|
+
let { quasi } = node;
|
|
50
|
+
sourceCode.getTokenBefore(quasi).loc.end.line !== quasi.loc.start.line && context.report({
|
|
51
|
+
node,
|
|
52
|
+
loc: {
|
|
53
|
+
start: quasi.loc.start,
|
|
54
|
+
end: {
|
|
55
|
+
line: quasi.loc.start.line,
|
|
56
|
+
column: quasi.loc.start.column + 1
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
messageId: "taggedTemplate"
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
CallExpression(node) {
|
|
63
|
+
node.arguments.length === 0 || node.optional || checkForBreakAfter(node.callee, "function");
|
|
64
|
+
},
|
|
65
|
+
"BinaryExpression[operator='/'] > BinaryExpression[operator='/'].left"(node) {
|
|
66
|
+
let secondSlash = sourceCode.getTokenAfter(node, (token) => token.value === "/"), tokenAfterOperator = sourceCode.getTokenAfter(secondSlash);
|
|
67
|
+
tokenAfterOperator.type === "Identifier" && REGEX_FLAG_MATCHER.test(tokenAfterOperator.value) && secondSlash.range[1] === tokenAfterOperator.range[0] && checkForBreakAfter(node.left, "division");
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
}));
|
|
73
|
+
//#endregion
|
|
74
|
+
//#region src-js/generated/plugin-eslint/rules/no-unexpected-multiline.cjs
|
|
75
|
+
module.exports = require_no_unexpected_multiline().create;
|
|
76
|
+
//#endregion
|