improve readability

This commit is contained in:
Thijs van Loef
2025-06-09 13:18:22 +02:00
parent f2e461a1ee
commit 96151de814

View File

@@ -1,11 +1,21 @@
export function parseDataSize(sizeStr: string): number { export function parseDataSize(sizeStr: string): number {
if (!sizeStr) return 0; if (typeof sizeStr !== 'string') return 0;
const match = sizeStr.trim().toUpperCase().match(/^([\d.]+)\s*([KMGT]?B)$/);
const match = /^\s*([\d.]+)\s*([KMGT]?B)\s*$/i.exec(sizeStr);
if (!match) return 0; if (!match) return 0;
const [, numStr, unit] = match;
const num = parseFloat(numStr) || 0; const [ , numStr, unitRaw ] = match;
const multipliers: Record<string, number> = { const num = parseFloat(numStr);
B: 1, KB: 1024, MB: 1024**2, GB: 1024**3, TB: 1024**4, if (isNaN(num)) return 0;
};
return num * (multipliers[unit] || 1); const unit = unitRaw.toUpperCase();
const multipliers = {
B: 1,
KB: 1024,
MB: 1024 ** 2,
GB: 1024 ** 3,
TB: 1024 ** 4,
} as const;
return num * (multipliers[unit as keyof typeof multipliers] ?? 1);
} }