Skip to content

Commit 6187aec

Browse files
shobhitchittoraMylesBorins
authored andcommitted
tools: autofixer for lowercase-name-for-primitive
PR-URL: #17715 Refs: #16636 Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Weijia Wang <starkwang@126.com>
1 parent 038e526 commit 6187aec

2 files changed

Lines changed: 31 additions & 12 deletions

File tree

‎test/parallel/test-eslint-lowercase-name-for-primitive.js‎

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,28 @@ new RuleTester().run('lowercase-name-for-primitive', rule, {
2222
],
2323
invalid: [
2424
{
25-
code: 'new errors.TypeError("ERR_INVALID_ARG_TYPE", "a", "Number")',
26-
errors: [{message: 'primitive should use lowercase: Number'}]
25+
code: 'new errors.TypeError(\'ERR_INVALID_ARG_TYPE\', \'a\', '+
26+
'\'Number\')',
27+
errors: [{message: 'primitive should use lowercase: Number'}],
28+
output: 'new errors.TypeError(\'ERR_INVALID_ARG_TYPE\', \'a\', '+
29+
'\'number\')'
2730
},
2831
{
29-
code: 'new errors.TypeError("ERR_INVALID_ARG_TYPE", "a", "STRING")',
30-
errors: [{message: 'primitive should use lowercase: STRING'}]
32+
code: 'new errors.TypeError(\'ERR_INVALID_ARG_TYPE\', \'a\', '+
33+
'\'STRING\')',
34+
errors: [{message: 'primitive should use lowercase: STRING'}],
35+
output: 'new errors.TypeError(\'ERR_INVALID_ARG_TYPE\', \'a\', '+
36+
'\'string\')'
3137
},
3238
{
33-
code: 'new errors.TypeError("ERR_INVALID_ARG_TYPE", "a",'+
34-
'["String", "Number"])',
39+
code: 'new errors.TypeError(\'ERR_INVALID_ARG_TYPE\', \'a\', '+
40+
'[\'String\', \'Number\']) ',
3541
errors: [
3642
{message: 'primitive should use lowercase: String'},
3743
{message: 'primitive should use lowercase: Number'}
38-
]
44+
],
45+
output: 'new errors.TypeError(\'ERR_INVALID_ARG_TYPE\', \'a\', '+
46+
'[\'string\', \'number\']) '
3947
}
4048
]
4149
});

‎tools/eslint-rules/lowercase-name-for-primitive.js‎

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,33 @@ module.exports = function(context) {
2222

2323
switch(names.type){
2424
case'Literal':
25-
checkName(node,names.value);
25+
checkName(names);
2626
break;
2727
case'ArrayExpression':
2828
names.elements.forEach((name)=>{
29-
checkName(node,name.value);
29+
checkName(name);
3030
});
3131
break;
3232
}
3333
}
3434

35-
functioncheckName(node,name){
35+
functioncheckName(node){
36+
constname=node.value;
3637
constlowercaseName=name.toLowerCase();
37-
if(primitives.includes(lowercaseName)&&!primitives.includes(name)){
38+
if(name!==lowercaseName&&primitives.includes(lowercaseName)){
3839
constmsg=`primitive should use lowercase: ${name}`;
39-
context.report(node,msg);
40+
context.report({
41+
node,
42+
message: msg,
43+
fix: (fixer)=>{
44+
returnfixer.replaceText(
45+
node,
46+
`'${lowercaseName}'`
47+
);
48+
}
49+
});
4050
}
51+
4152
}
4253

4354
return{

0 commit comments

Comments
 (0)