]> git.proxmox.com Git - pve-eslint.git/blobdiff - eslint/lib/rules/no-multi-assign.js
import 8.3.0 source
[pve-eslint.git] / eslint / lib / rules / no-multi-assign.js
index d2606a1502a2499bc085a6379fc85afd00c6bfab..8d7bd32c7dd99310e2e7ef085c062f403bee1d3b 100644 (file)
@@ -16,7 +16,6 @@ module.exports = {
 
         docs: {
             description: "disallow use of chained assignment expressions",
-            category: "Stylistic Issues",
             recommended: false,
             url: "https://eslint.org/docs/rules/no-multi-assign"
         },
@@ -45,16 +44,21 @@ module.exports = {
         const options = context.options[0] || {
             ignoreNonDeclaration: false
         };
-        const targetParent = options.ignoreNonDeclaration ? ["VariableDeclarator"] : ["AssignmentExpression", "VariableDeclarator"];
+        const selectors = [
+            "VariableDeclarator > AssignmentExpression.init",
+            "PropertyDefinition > AssignmentExpression.value"
+        ];
+
+        if (!options.ignoreNonDeclaration) {
+            selectors.push("AssignmentExpression > AssignmentExpression.right");
+        }
 
         return {
-            AssignmentExpression(node) {
-                if (targetParent.indexOf(node.parent.type) !== -1) {
-                    context.report({
-                        node,
-                        messageId: "unexpectedChain"
-                    });
-                }
+            [selectors](node) {
+                context.report({
+                    node,
+                    messageId: "unexpectedChain"
+                });
             }
         };