Files
pangolin/src/lib/dataSize.ts
2025-12-10 03:19:14 +01:00

22 lines
560 B
TypeScript

export function parseDataSize(sizeStr: string): number {
if (typeof sizeStr !== "string") return 0;
const match = /^\s*([\d.]+)\s*([KMGT]?B)\s*$/i.exec(sizeStr);
if (!match) return 0;
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);
}