| export function formatBytes(bytes: number): string { | |
| if (!Number.isFinite(bytes) || bytes <= 0) return '0 B' | |
| const units = ['B', 'KB', 'MB', 'GB', 'TB'] | |
| let value = bytes | |
| let unitIndex = 0 | |
| while (value >= 1024 && unitIndex < units.length - 1) { | |
| value /= 1024 | |
| unitIndex += 1 | |
| } | |
| const maximumFractionDigits = value >= 10 || unitIndex === 0 ? 0 : 1 | |
| return `${new Intl.NumberFormat(undefined, { | |
| maximumFractionDigits, | |
| }).format(value)} ${units[unitIndex]}` | |
| } | |