/** * Health Component Display Object * * Provides formatting and display logic for health components. * This display object isolates UI-specific formatting from business logic. */ export class HealthComponentFormatter { static formatStatusLabel(status: 'ok' | 'degraded' | 'error' | 'unknown'): string { const labels: Record = { ok: 'Healthy', degraded: 'Degraded', error: 'Error', unknown: 'Unknown', }; return labels[status] || 'Unknown'; } static formatStatusColor(status: 'ok' | 'degraded' | 'error' | 'unknown'): string { const colors: Record = { ok: '#10b981', // green-500 degraded: '#f59e0b', // amber-500 error: '#ef4444', // red-500 unknown: '#6b7280', // gray-500 }; return colors[status] || '#6b7280'; } static formatStatusIcon(status: 'ok' | 'degraded' | 'error' | 'unknown'): string { const icons: Record = { ok: '✓', degraded: '⚠', error: '✕', unknown: '?', }; return icons[status] || '?'; } static formatTimestamp(timestamp: string): string { const date = new Date(timestamp); return date.toLocaleString('en-US', { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit', second: '2-digit', }); } }