mirror of
https://github.com/jhd3197/ServerKit.git
synced 2026-11-01 17:47:38 +09:00
30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
import { relative } from 'node:path';
|
|
|
|
export function warningInventory(results, root, sourceFiles) {
|
|
const inventory = {};
|
|
for (const result of results) {
|
|
if (!sourceFiles.has(result.filePath)) continue;
|
|
const file = relative(root, result.filePath).replaceAll('\\', '/');
|
|
for (const message of result.messages) {
|
|
if (message.severity !== 1) continue;
|
|
const rule = message.ruleId || 'unused-disable';
|
|
inventory[file] ||= {};
|
|
inventory[file][rule] = (inventory[file][rule] || 0) + 1;
|
|
}
|
|
}
|
|
return Object.fromEntries(Object.entries(inventory).sort().map(([file, rules]) => [
|
|
file, Object.fromEntries(Object.entries(rules).sort()),
|
|
]));
|
|
}
|
|
|
|
export function warningRegressions(current, baseline) {
|
|
const regressions = [];
|
|
for (const [file, rules] of Object.entries(current)) {
|
|
for (const [rule, count] of Object.entries(rules)) {
|
|
const ceiling = baseline[file]?.[rule] || 0;
|
|
if (count > ceiling) regressions.push(`${file}: ${rule} has ${count} warnings (ceiling ${ceiling})`);
|
|
}
|
|
}
|
|
return regressions;
|
|
}
|