UNPKG

583 BJavaScriptView Raw
1/*
2 MIT License http://www.opensource.org/licenses/mit-license.php
3 Author Sean Larkin @thelarkinn
4*/
5
6"use strict";
7
8/**
9 * @param {number} size the size in bytes
10 * @returns {string} the formatted size
11 */
12exports.formatSize = size => {
13 if (typeof size !== "number" || Number.isNaN(size) === true) {
14 return "unknown size";
15 }
16
17 if (size <= 0) {
18 return "0 bytes";
19 }
20
21 const abbreviations = ["bytes", "KiB", "MiB", "GiB"];
22 const index = Math.floor(Math.log(size) / Math.log(1024));
23
24 return `${+(size / Math.pow(1024, index)).toPrecision(3)} ${
25 abbreviations[index]
26 }`;
27};
28
\No newline at end of file