-
Notifications
You must be signed in to change notification settings - Fork 8
/
scorePlugin.js
35 lines (31 loc) · 1.14 KB
/
scorePlugin.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
exports.myScoreDeal = function (analysisContext){
// console.log(analysisContext);
const { pluginsQueue, browserQueue, parseErrorInfos } = analysisContext;
const mapNames = pluginsQueue.map(item=>item.mapName).concat(browserQueue.map(item=>item.mapName));
let score = 100; // 初始分数
let message =[]; // 代码建议
// 黑名单API扣分处理
if(mapNames.length>0){
mapNames.forEach((item)=>{
Object.keys(analysisContext[item]).forEach((sitem)=>{
if(analysisContext[item][sitem].isBlack){
score = score - 5;
message.push(sitem + ' 属于黑名单api,请勿使用');
}
})
})
}
// 解析AST异常的扣分处理
if(parseErrorInfos.length >0){
score = score - 3*parseErrorInfos.length;
let tempMessage ='';
tempMessage = parseErrorInfos.length + ' 个文件解析&分析AST时发生错误,请修复';
message.push(tempMessage);
}
// 最低0分
if(score <0)score =0;
return {
score: score,
message: message
}
}