mirror of
https://github.com/fosrl/pangolin.git
synced 2025-10-30 14:17:30 +00:00
improve readability
This commit is contained in:
@@ -1,11 +1,21 @@
|
||||
export function parseDataSize(sizeStr: string): number {
|
||||
if (!sizeStr) return 0;
|
||||
const match = sizeStr.trim().toUpperCase().match(/^([\d.]+)\s*([KMGT]?B)$/);
|
||||
if (typeof sizeStr !== 'string') return 0;
|
||||
|
||||
const match = /^\s*([\d.]+)\s*([KMGT]?B)\s*$/i.exec(sizeStr);
|
||||
if (!match) return 0;
|
||||
const [, numStr, unit] = match;
|
||||
const num = parseFloat(numStr) || 0;
|
||||
const multipliers: Record<string, number> = {
|
||||
B: 1, KB: 1024, MB: 1024**2, GB: 1024**3, TB: 1024**4,
|
||||
};
|
||||
return num * (multipliers[unit] || 1);
|
||||
|
||||
const [ , numStr, unitRaw ] = match;
|
||||
const num = parseFloat(numStr);
|
||||
if (isNaN(num)) return 0;
|
||||
|
||||
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);
|
||||
}
|
||||
Reference in New Issue
Block a user