clash-verge-rev/src/utils/parse-traffic.ts
❤是纱雾酱哟~ ff0de29f17
Fixes traffic parsing for small values (#5737)
- Unified handler to IEC standard.
- Change handler to parse number in a unified style, even with number less than 1000.

Signed-off-by: Dragon1573 <49941141+Dragon1573@users.noreply.github.com>
2025-12-06 09:00:04 +08:00

15 lines
444 B
TypeScript

const UNITS = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
const parseTraffic = (num?: number) => {
if (typeof num !== "number") return ["NaN", ""];
const exp =
num < 1 ? 0 : Math.min(Math.floor(Math.log2(num) / 10), UNITS.length - 1);
const dat = num / Math.pow(1024, exp);
const ret = dat >= 1000 ? dat.toFixed(0) : dat.toPrecision(3);
const unit = UNITS[exp];
return [ret, unit];
};
export default parseTraffic;