2017-09-07 08:19:11 +02:00
|
|
|
export const Rates = {
|
2017-10-01 18:20:54 +02:00
|
|
|
"B/s": Math.pow(1024, 0),
|
2017-09-07 08:19:11 +02:00
|
|
|
"KiB/s": Math.pow(1024, 1),
|
|
|
|
"MiB/s": Math.pow(1024, 2),
|
|
|
|
"GiB/s": Math.pow(1024, 3),
|
|
|
|
"TiB/s": Math.pow(1024, 4),
|
|
|
|
};
|
|
|
|
|
|
|
|
export function convertToBitrate(value, unit) {
|
|
|
|
return value * Rates[unit];
|
|
|
|
}
|
|
|
|
|
2017-09-10 13:17:32 +02:00
|
|
|
export function convertFromBitrate(value, unit) {
|
|
|
|
return value / Rates[unit];
|
|
|
|
}
|
|
|
|
|
2017-12-29 07:35:07 +01:00
|
|
|
export function convertedRate(bitrate) {
|
2017-09-07 08:19:11 +02:00
|
|
|
if (bitrate > Rates["GiB/s"]) {
|
2017-12-29 07:35:07 +01:00
|
|
|
return [bitrate / Rates["GiB/s"], "GiB/s"];
|
2017-09-07 08:19:11 +02:00
|
|
|
} else if (bitrate > Rates["MiB/s"]) {
|
2017-12-29 07:35:07 +01:00
|
|
|
return [bitrate / Rates["MiB/s"], "MiB/s"];
|
2017-09-07 08:19:11 +02:00
|
|
|
} else if (bitrate > Rates["KiB/s"]) {
|
2017-12-29 07:35:07 +01:00
|
|
|
return [bitrate / Rates["KiB/s"], "KiB/s"];
|
2017-08-25 04:49:24 +02:00
|
|
|
} else {
|
2017-12-29 07:35:07 +01:00
|
|
|
return [bitrate, "B/s"];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export function formatBitrate(bitrate) {
|
|
|
|
const [rate, unit] = convertedRate(bitrate);
|
|
|
|
let places = 2;
|
|
|
|
if (rate >= 100) {
|
|
|
|
places = 0;
|
|
|
|
} else if (rate >= 10) {
|
|
|
|
places = 1;
|
2017-12-29 08:07:40 +01:00
|
|
|
} else if (rate == 0) {
|
|
|
|
places = 0;
|
2017-08-25 04:49:24 +02:00
|
|
|
}
|
2017-12-29 07:35:07 +01:00
|
|
|
return `${rate.toFixed(places)} ${unit}`;
|
2017-08-25 04:49:24 +02:00
|
|
|
}
|
2017-09-10 14:21:08 +02:00
|
|
|
|
|
|
|
export function formatAmount(amount) {
|
2017-12-29 07:35:07 +01:00
|
|
|
const units = {
|
|
|
|
"GiB/s": "GiB",
|
|
|
|
"MiB/s": "MiB",
|
|
|
|
"KiB/s": "KiB",
|
|
|
|
"B/s": "bytes"
|
|
|
|
};
|
|
|
|
const [rate, unit] = convertedRate(amount);
|
|
|
|
let places = 2;
|
|
|
|
if (rate >= 100) {
|
|
|
|
places = 0;
|
|
|
|
} else if (rate >= 10) {
|
|
|
|
places = 1;
|
2017-12-29 08:07:40 +01:00
|
|
|
} else if (rate == 0) {
|
|
|
|
places = 0;
|
2017-09-10 14:21:08 +02:00
|
|
|
}
|
2017-12-29 07:35:07 +01:00
|
|
|
return `${rate.toFixed(places)} ${units[unit]}`;
|
2017-09-10 14:21:08 +02:00
|
|
|
}
|