export function formatDuration(durationMs: number): string { const totalSeconds = Math.round(durationMs / 1000); const hours = Math.floor(totalSeconds / 3600); const minutes = Math.floor((totalSeconds % 3600) / 60); const seconds = totalSeconds % 60; if (hours > 0) { return `${hours}:${minutes.toString().padStart(2, "0")}:${seconds .toString() .padStart(2, "0")}`; } return `${minutes}:${seconds.toString().padStart(2, "0")}`; } /** * Format file size in bytes to human-readable string. * @example formatFileSize(1024) => "1 KB" * @example formatFileSize(1536000) => "1.5 MB" */ export function formatFileSize(bytes: number): string { if (bytes < 1024) return `${bytes} B`; const units = ["KB", "MB", "GB"]; let size = bytes / 1024; let unit = 0; while (size >= 1024 && unit < units.length - 1) { size /= 1024; unit += 1; } return `${size.toFixed(size >= 10 ? 0 : 1)} ${units[unit]}`; }