Skip to content

Commit 928b7c8

Browse files
cjihrigMylesBorins
authored andcommitted
tools: simplify lowercase-name-for-primitive rule
PR-URL: #17653 Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Jon Moss <me@jonathanmoss.me> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com>
1 parent 1eac405 commit 928b7c8

1 file changed

Lines changed: 25 additions & 28 deletions

File tree

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

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,41 +9,38 @@
99
// Rule Definition
1010
//------------------------------------------------------------------------------
1111

12+
constastSelector='NewExpression[callee.property.name="TypeError"]'+
13+
'[arguments.0.value="ERR_INVALID_ARG_TYPE"]';
14+
1215
constprimitives=[
1316
'number','string','boolean','null','undefined'
1417
];
1518

1619
module.exports=function(context){
17-
return{
18-
NewExpression(node){
19-
if(
20-
node.callee.property&&
21-
node.callee.property.name==='TypeError'&&
22-
node.arguments[0].value==='ERR_INVALID_ARG_TYPE'
23-
){
24-
checkNamesArgument(node.arguments[2]);
25-
}
20+
functioncheckNamesArgument(node){
21+
constnames=node.arguments[2];
2622

27-
functioncheckNamesArgument(names){
28-
switch(names.type){
29-
case'Literal':
30-
checkName(names.value);
31-
break;
32-
case'ArrayExpression':
33-
names.elements.forEach((name)=>{
34-
checkName(name.value);
35-
});
36-
break;
37-
}
38-
}
23+
switch(names.type){
24+
case'Literal':
25+
checkName(node,names.value);
26+
break;
27+
case'ArrayExpression':
28+
names.elements.forEach((name)=>{
29+
checkName(node,name.value);
30+
});
31+
break;
32+
}
33+
}
3934

40-
functioncheckName(name){
41-
constlowercaseName=name.toLowerCase();
42-
if(primitives.includes(lowercaseName)&&!primitives.includes(name)){
43-
constmsg=`primitive should use lowercase: ${name}`;
44-
context.report(node,msg);
45-
}
46-
}
35+
functioncheckName(node,name){
36+
constlowercaseName=name.toLowerCase();
37+
if(primitives.includes(lowercaseName)&&!primitives.includes(name)){
38+
constmsg=`primitive should use lowercase: ${name}`;
39+
context.report(node,msg);
4740
}
41+
}
42+
43+
return{
44+
[astSelector]: (node)=>checkNamesArgument(node)
4845
};
4946
};

0 commit comments

Comments
 (0)