Files
dockhand-upstream/src/lib/utils/format.ts
T
2026-07-25 08:41:01 +02:00

20 lines
702 B
TypeScript

/**
* Format a byte count into a human-readable string.
*/
export function formatBytes(bytes: number, decimals = 1): string {
if (bytes === 0) return '0 B';
const units = ['B', 'KB', 'MB', 'GB', 'TB'];
const i = Math.floor(Math.log(bytes) / Math.log(1024));
return `${(bytes / Math.pow(1024, i)).toFixed(i === 0 ? 0 : decimals)} ${units[i]}`;
}
/**
* Compact byte format for grids: 1.2K, 500M, 2.1G
*/
export function formatBytesCompact(bytes: number, decimals = 1): string {
if (bytes === 0) return '0B';
const units = ['B', 'K', 'M', 'G', 'T'];
const i = Math.floor(Math.log(bytes) / Math.log(1024));
return `${(bytes / Math.pow(1024, i)).toFixed(i === 0 ? 0 : decimals)}${units[i]}`;
}