33 lines
687 B
TypeScript
33 lines
687 B
TypeScript
|
|
namespace _heimdall.helpers.misc
|
||
|
|
{
|
||
|
|
|
||
|
|
/**
|
||
|
|
*/
|
||
|
|
export function format_bytes(
|
||
|
|
bytes : int
|
||
|
|
) : string
|
||
|
|
{
|
||
|
|
const units : Array<{label : string; digits : int;}> = [
|
||
|
|
{"label": "B", "digits": 0},
|
||
|
|
{"label": "KB", "digits": 1},
|
||
|
|
{"label": "MB", "digits": 1},
|
||
|
|
{"label": "GB", "digits": 1},
|
||
|
|
{"label": "TB", "digits": 1},
|
||
|
|
{"label": "PB", "digits": 1},
|
||
|
|
]
|
||
|
|
let number_ : int = bytes;
|
||
|
|
let index : int = 0;
|
||
|
|
while ((number_ >= 1000) && (index < (units.length - 1))) {
|
||
|
|
number_ /= 1000;
|
||
|
|
index += 1;
|
||
|
|
}
|
||
|
|
return lib_plankton.string.coin(
|
||
|
|
"{{number}} {{label}}",
|
||
|
|
{
|
||
|
|
"number": number_.toFixed(units[index].digits),
|
||
|
|
"label": units[index].label,
|
||
|
|
}
|
||
|
|
);
|
||
|
|
}
|
||
|
|
}
|