@js-data-tools/js-helpers
Version:
A set of JavaScript / TypeScript helper functions for parsing, converting, transforming and formatting data.
32 lines (31 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatDuration = exports.formatCompact = exports.formatSize = exports.NUMERIC_UNITS = exports.IEC_SIZE_UNITS = exports.SI_SIZE_UNITS = void 0;
const numeric_1 = require("./convert/numeric");
exports.SI_SIZE_UNITS = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
exports.IEC_SIZE_UNITS = ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"];
exports.NUMERIC_UNITS = ["", "K", "M", "G", "T", "P"];
function formatSize(sizeInBytes, base = 1000, unitNames) {
const units = unitNames || (base === 1024 ? exports.IEC_SIZE_UNITS : exports.SI_SIZE_UNITS);
const [value, i] = (0, numeric_1.compactNumber)(sizeInBytes, units.length, base);
return value + " " + units[i];
}
exports.formatSize = formatSize;
function formatCompact(value) {
const [compact, i] = (0, numeric_1.compactNumber)(value, exports.NUMERIC_UNITS.length);
return compact + exports.NUMERIC_UNITS[i];
}
exports.formatCompact = formatCompact;
function formatDuration(durationMsec) {
if (durationMsec < 1000) {
return durationMsec + " msec";
}
const durationSec = (0, numeric_1.roundNumber)(durationMsec / 1000, durationMsec >= 60000 ? 0 : 2);
if (durationSec < 120) {
return durationSec + " sec";
}
const minutes = Math.floor(durationSec / 60);
const seconds = durationSec % 60;
return minutes + " min" + (seconds ? " " + seconds + " sec" : "");
}
exports.formatDuration = formatDuration;