@modern-js/utils
Version:
A Progressive React Framework for modern web development.
199 lines (198 loc) • 7.61 kB
JavaScript
/*! LICENSE: index.js.LICENSE.txt */
(()=>{
var i = {
823: function(i) {
/**
* filesize
*
* @copyright 2022 Jason Mulligan <jason.mulligan@avoidwork.com>
* @license BSD-3-Clause
* @version 8.0.7
*/ (function(e, t) {
i.exports = t();
})(0, function() {
"use strict";
var i = /^(b|B)$/, e = {
iec: {
bits: [
"bit",
"Kibit",
"Mibit",
"Gibit",
"Tibit",
"Pibit",
"Eibit",
"Zibit",
"Yibit"
],
bytes: [
"B",
"KiB",
"MiB",
"GiB",
"TiB",
"PiB",
"EiB",
"ZiB",
"YiB"
]
},
jedec: {
bits: [
"bit",
"Kbit",
"Mbit",
"Gbit",
"Tbit",
"Pbit",
"Ebit",
"Zbit",
"Ybit"
],
bytes: [
"B",
"KB",
"MB",
"GB",
"TB",
"PB",
"EB",
"ZB",
"YB"
]
}
}, t = {
iec: [
"",
"kibi",
"mebi",
"gibi",
"tebi",
"pebi",
"exbi",
"zebi",
"yobi"
],
jedec: [
"",
"kilo",
"mega",
"giga",
"tera",
"peta",
"exa",
"zetta",
"yotta"
]
}, r = {
floor: Math.floor,
ceil: Math.ceil
};
function filesize(o) {
var a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
var n = [], s = 0, f, b, l, u, c, p, d, _, B, v, h, g, x, y, M, m, w, k, N, z, E;
if (isNaN(o)) throw new TypeError("Invalid number");
l = true === a.bits;
M = true === a.unix;
g = true === a.pad;
b = a.base || 10;
x = void 0 !== a.round ? a.round : M ? 1 : 2;
d = void 0 !== a.locale ? a.locale : "";
_ = a.localeOptions || {};
m = void 0 !== a.separator ? a.separator : "";
w = void 0 !== a.spacer ? a.spacer : M ? "" : " ";
N = a.symbols || {};
k = 2 === b ? a.standard || "iec" : "jedec";
h = a.output || "string";
c = true === a.fullform;
p = a.fullforms instanceof Array ? a.fullforms : [];
f = void 0 !== a.exponent ? a.exponent : -1;
z = r[a.roundingMethod] || Math.round;
v = Number(o);
B = v < 0;
u = b > 2 ? 1e3 : 1024;
E = false === isNaN(a.precision) ? parseInt(a.precision, 10) : 0;
if (B) v = -v;
if (-1 === f || isNaN(f)) {
f = Math.floor(Math.log(v) / Math.log(u));
if (f < 0) f = 0;
}
if (f > 8) {
if (E > 0) E += 8 - f;
f = 8;
}
if ("exponent" === h) return f;
if (0 === v) {
n[0] = 0;
y = n[1] = M ? "" : e[k][l ? "bits" : "bytes"][f];
} else {
s = v / (2 === b ? Math.pow(2, 10 * f) : Math.pow(1e3, f));
if (l) {
s *= 8;
if (s >= u && f < 8) {
s /= u;
f++;
}
}
var j = Math.pow(10, f > 0 ? x : 0);
n[0] = z(s * j) / j;
if (n[0] === u && f < 8 && void 0 === a.exponent) {
n[0] = 1;
f++;
}
y = n[1] = 10 === b && 1 === f ? l ? "kbit" : "kB" : e[k][l ? "bits" : "bytes"][f];
if (M) {
n[1] = n[1].charAt(0);
if (i.test(n[1])) {
n[0] = Math.floor(n[0]);
n[1] = "";
}
}
}
if (B) n[0] = -n[0];
if (E > 0) n[0] = n[0].toPrecision(E);
n[1] = N[n[1]] || n[1];
if (true === d) n[0] = n[0].toLocaleString();
else if (d.length > 0) n[0] = n[0].toLocaleString(d, _);
else if (m.length > 0) n[0] = n[0].toString().replace(".", m);
if (g && false === Number.isInteger(n[0]) && x > 0) {
var q = m || ".", P = n[0].toString().split(q), T = P[1] || "", G = T.length, K = x - G;
n[0] = "".concat(P[0]).concat(q).concat(T.padEnd(G + K, "0"));
}
if (c) n[1] = p[f] ? p[f] : t[k][f] + (l ? "bit" : "byte") + (1 === n[0] ? "" : "s");
return "array" === h ? n : "object" === h ? {
value: n[0],
symbol: n[1],
exponent: f,
unit: y
} : n.join(w);
}
filesize.partial = function(i) {
return function(e) {
return filesize(e, i);
};
};
return filesize;
});
}
};
var e = {};
function __nccwpck_require__(t) {
var r = e[t];
if (void 0 !== r) return r.exports;
var o = e[t] = {
exports: {}
};
var a = true;
try {
i[t].call(o.exports, o, o.exports, __nccwpck_require__);
a = false;
} finally{
if (a) delete e[t];
}
return o.exports;
}
if (void 0 !== __nccwpck_require__) __nccwpck_require__.ab = __dirname + "/";
var t = __nccwpck_require__(823);
module.exports = t;
})();