import { SEVERITY_ORDER, type SeverityLevel } from "../../shared/constants" export class ViolationGrouper { groupBySeverity( violations: T[], ): Map { const grouped = new Map() for (const violation of violations) { const existing = grouped.get(violation.severity) ?? [] existing.push(violation) grouped.set(violation.severity, existing) } return grouped } filterBySeverity( violations: T[], minSeverity?: SeverityLevel, ): T[] { if (!minSeverity) { return violations } const minSeverityOrder = SEVERITY_ORDER[minSeverity] return violations.filter((v) => SEVERITY_ORDER[v.severity] <= minSeverityOrder) } }