monitor/scripts/lint-formatter.js
2025-04-16 22:30:27 +07:00

29 lines
797 B
JavaScript

module.exports = (results) => {
const byRuleId = results.reduce(
(map, current) => {
current.messages.forEach(({ ruleId, line, column }) => {
if (!map[ruleId]) {
map[ruleId] = [];
}
const occurrence = `${current.filePath}:${line}:${column}`;
map[ruleId].push(occurrence);
});
return map;
}, {},
);
const ruleCounts = Object.entries(byRuleId)
.map((rule) => ({id: rule[0], count: rule[1].length}));
ruleCounts.sort((a, b) => {
if (a.count > b.count) return -1;
if (a.count < b.count) return 1;
return 0;
});
return ruleCounts
.map((rule) => `${rule.count}\t${rule.id}`)
.join('\n');
};