vlt
Version:
The vlt CLI
151 lines (148 loc) • 4.43 kB
JavaScript
var global = globalThis;
import {Buffer} from "node:buffer";
import {setTimeout,clearTimeout,setImmediate,clearImmediate,setInterval,clearInterval} from "node:timers";
import {createRequire as _vlt_createRequire} from "node:module";
var require = _vlt_createRequire(import.meta.filename);
// ../../node_modules/.pnpm/pretty-bytes@7.1.0/node_modules/pretty-bytes/index.js
var BYTE_UNITS = [
"B",
"kB",
"MB",
"GB",
"TB",
"PB",
"EB",
"ZB",
"YB"
];
var BIBYTE_UNITS = [
"B",
"KiB",
"MiB",
"GiB",
"TiB",
"PiB",
"EiB",
"ZiB",
"YiB"
];
var BIT_UNITS = [
"b",
"kbit",
"Mbit",
"Gbit",
"Tbit",
"Pbit",
"Ebit",
"Zbit",
"Ybit"
];
var BIBIT_UNITS = [
"b",
"kibit",
"Mibit",
"Gibit",
"Tibit",
"Pibit",
"Eibit",
"Zibit",
"Yibit"
];
var toLocaleString = (number, locale, options) => {
let result = number;
if (typeof locale === "string" || Array.isArray(locale)) {
result = number.toLocaleString(locale, options);
} else if (locale === true || options !== void 0) {
result = number.toLocaleString(void 0, options);
}
return result;
};
var log10 = (numberOrBigInt) => {
if (typeof numberOrBigInt === "number") {
return Math.log10(numberOrBigInt);
}
const string = numberOrBigInt.toString(10);
return string.length + Math.log10(`0.${string.slice(0, 15)}`);
};
var log = (numberOrBigInt) => {
if (typeof numberOrBigInt === "number") {
return Math.log(numberOrBigInt);
}
return log10(numberOrBigInt) * Math.log(10);
};
var divide = (numberOrBigInt, divisor) => {
if (typeof numberOrBigInt === "number") {
return numberOrBigInt / divisor;
}
const integerPart = numberOrBigInt / BigInt(divisor);
const remainder = numberOrBigInt % BigInt(divisor);
return Number(integerPart) + Number(remainder) / divisor;
};
var applyFixedWidth = (result, fixedWidth) => {
if (fixedWidth === void 0) {
return result;
}
if (typeof fixedWidth !== "number" || !Number.isSafeInteger(fixedWidth) || fixedWidth < 0) {
throw new TypeError(`Expected fixedWidth to be a non-negative integer, got ${typeof fixedWidth}: ${fixedWidth}`);
}
if (fixedWidth === 0) {
return result;
}
return result.length < fixedWidth ? result.padStart(fixedWidth, " ") : result;
};
var buildLocaleOptions = (options) => {
const { minimumFractionDigits, maximumFractionDigits } = options;
if (minimumFractionDigits === void 0 && maximumFractionDigits === void 0) {
return void 0;
}
return {
...minimumFractionDigits !== void 0 && { minimumFractionDigits },
...maximumFractionDigits !== void 0 && { maximumFractionDigits },
roundingMode: "trunc"
};
};
function prettyBytes(number, options) {
if (typeof number !== "bigint" && !Number.isFinite(number)) {
throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);
}
options = {
bits: false,
binary: false,
space: true,
nonBreakingSpace: false,
...options
};
const UNITS = options.bits ? options.binary ? BIBIT_UNITS : BIT_UNITS : options.binary ? BIBYTE_UNITS : BYTE_UNITS;
const separator = options.space ? options.nonBreakingSpace ? "\xA0" : " " : "";
const isZero = typeof number === "number" ? number === 0 : number === 0n;
if (options.signed && isZero) {
const result2 = ` 0${separator}${UNITS[0]}`;
return applyFixedWidth(result2, options.fixedWidth);
}
const isNegative = number < 0;
const prefix = isNegative ? "-" : options.signed ? "+" : "";
if (isNegative) {
number = -number;
}
const localeOptions = buildLocaleOptions(options);
let result;
if (number < 1) {
const numberString = toLocaleString(number, options.locale, localeOptions);
result = prefix + numberString + separator + UNITS[0];
} else {
const exponent = Math.min(Math.floor(options.binary ? log(number) / Math.log(1024) : log10(number) / 3), UNITS.length - 1);
number = divide(number, (options.binary ? 1024 : 1e3) ** exponent);
if (!localeOptions) {
const minPrecision = Math.max(3, Math.floor(number).toString().length);
number = number.toPrecision(minPrecision);
}
const numberString = toLocaleString(Number(number), options.locale, localeOptions);
const unit = UNITS[exponent];
result = prefix + numberString + separator + unit;
}
return applyFixedWidth(result, options.fixedWidth);
}
export {
prettyBytes
};
//# sourceMappingURL=chunk-QGJUWLFF.js.map