@js-data-tools/js-helpers
Version:
A set of JavaScript / TypeScript helper functions for parsing, converting, transforming and formatting data.
26 lines (25 loc) • 1.15 kB
JavaScript
import { compactNumber, roundNumber } from "./convert/numeric";
export const SI_SIZE_UNITS = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
export const IEC_SIZE_UNITS = ["B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"];
export const NUMERIC_UNITS = ["", "K", "M", "G", "T", "P"];
export function formatSize(sizeInBytes, base = 1000, unitNames) {
const units = unitNames || (base === 1024 ? IEC_SIZE_UNITS : SI_SIZE_UNITS);
const [value, i] = compactNumber(sizeInBytes, units.length, base);
return value + " " + units[i];
}
export function formatCompact(value) {
const [compact, i] = compactNumber(value, NUMERIC_UNITS.length);
return compact + NUMERIC_UNITS[i];
}
export function formatDuration(durationMsec) {
if (durationMsec < 1000) {
return durationMsec + " msec";
}
const durationSec = 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" : "");
}