mirror of
https://github.com/thelounge/thelounge.git
synced 2024-06-03 14:22:19 +02:00
Merge 0f9f2f3bf3
into 549c445853
This commit is contained in:
commit
b3d057a6f1
|
@ -1,8 +1,15 @@
|
||||||
const sizes = ["Bytes", "KiB", "MiB", "GiB", "TiB", "PiB"];
|
const sizes = ["Bytes", "KiB", "MiB", "GiB", "TiB", "PiB"];
|
||||||
|
|
||||||
export default (size: number) => {
|
export default function formatSize(size: number): string {
|
||||||
// Loosely inspired from https://stackoverflow.com/a/18650828/1935861
|
if (size <= 0) {
|
||||||
const i = size > 0 ? Math.floor(Math.log(size) / Math.log(1024)) : 0;
|
throw new Error("Size must be a positive number");
|
||||||
const fixedSize = parseFloat((size / Math.pow(1024, i)).toFixed(1));
|
}
|
||||||
return `${fixedSize} ${sizes[i]}`;
|
|
||||||
};
|
const i = Math.floor(Math.log(size) / Math.log(1024));
|
||||||
|
|
||||||
|
if (i >= sizes.length) {
|
||||||
|
throw new Error("Size is out of range");
|
||||||
|
}
|
||||||
|
|
||||||
|
return `${(size / Math.pow(1024, i)).toFixed(1)} ${sizes[i]}`;
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue