From 639770c8d61572576d8b431802b904ff52b037ed Mon Sep 17 00:00:00 2001 From: Shobhit Chittora Date: Sun, 17 Dec 2017 16:11:34 +0530 Subject: tools: autofixer for lowercase-name-for-primitive PR-URL: https://github.com/nodejs/node/pull/17715 Refs: https://github.com/nodejs/node/issues/16636 Reviewed-By: Anatoli Papirovski Reviewed-By: Weijia Wang --- tools/eslint-rules/lowercase-name-for-primitive.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'tools') diff --git a/tools/eslint-rules/lowercase-name-for-primitive.js b/tools/eslint-rules/lowercase-name-for-primitive.js index cb603b62c0..d3a5243c37 100644 --- a/tools/eslint-rules/lowercase-name-for-primitive.js +++ b/tools/eslint-rules/lowercase-name-for-primitive.js @@ -22,22 +22,33 @@ module.exports = function(context) { switch (names.type) { case 'Literal': - checkName(node, names.value); + checkName(names); break; case 'ArrayExpression': names.elements.forEach((name) => { - checkName(node, name.value); + checkName(name); }); break; } } - function checkName(node, name) { + function checkName(node) { + const name = node.value; const lowercaseName = name.toLowerCase(); - if (primitives.includes(lowercaseName) && !primitives.includes(name)) { + if (name !== lowercaseName && primitives.includes(lowercaseName)) { const msg = `primitive should use lowercase: ${name}`; - context.report(node, msg); + context.report({ + node, + message: msg, + fix: (fixer) => { + return fixer.replaceText( + node, + `'${lowercaseName}'` + ); + } + }); } + } return { -- cgit v1.2.3