UNPKG

@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
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" : ""); }