docs: {
description: "disallow use of chained assignment expressions",
- category: "Stylistic Issues",
recommended: false,
url: "https://eslint.org/docs/rules/no-multi-assign"
},
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"
+ });
}
};