@dvcol/common-utils
Version:
Typescript library for common utility functions and constants
86 lines (74 loc) • 3.54 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// lib/common/utils/format.utils.ts
var _prettybytes = require('pretty-bytes'); var _prettybytes2 = _interopRequireDefault(_prettybytes);
var computeProgress = (downloaded, size) => {
const numDownloaded = Number(downloaded);
const numSize = Number(size);
if (numDownloaded && Number.isFinite(numDownloaded) && numSize && Number.isFinite(numSize)) {
const progress = Math.floor(numDownloaded / numSize * 100);
return Number.isFinite(progress) ? progress : 0;
}
return 0;
};
var formatTimeShort = ({ years, months, days, hours, minutes, seconds }, separator = ":") => {
const hms = [];
hms.push(hours.toString().padStart(2, "0"));
hms.push(minutes.toString().padStart(2, "0"));
hms.push(seconds.toString().padStart(2, "0"));
if (!years && !months && !days) return hms.join(separator);
const ymd = [];
ymd.push(years.toString().padStart(2, "0"));
ymd.push(months.toString().padStart(2, "0"));
ymd.push(days.toString().padStart(2, "0"));
return `${ymd.join(separator)}-${hms.join(separator)}`;
};
var formatTimeLong = ({ years, months, days, hours, minutes, seconds }) => {
const parts = [];
if (years) parts.push(`${years}y`);
if (months || years) parts.push(`${_nullishCoalesce(months, () => ( 0))}m`);
if (days || years || months) parts.push(`${_nullishCoalesce(days, () => ( 0))}d`);
if (hours || years || months || days) parts.push(`${_nullishCoalesce(hours, () => ( 0))}h`);
if (minutes || years || months || days || hours) parts.push(`${_nullishCoalesce(minutes, () => ( 0))}m`);
parts.push(`${_nullishCoalesce(seconds, () => ( 0))}s`);
return parts.join(" ");
};
var InSeconds = {
minute: 60,
hour: 60 * 60,
day: 60 * 60 * 24,
week: 60 * 60 * 24 * 7,
month: 60 * 60 * 24 * (365 / 12),
year: 60 * 60 * 24 * 365
};
var formatHMS = (s) => {
const hours = Math.floor(s / InSeconds.hour);
const minutes = Math.floor(s % InSeconds.hour / InSeconds.minute);
const seconds = Math.floor(s % InSeconds.minute);
return { years: 0, months: 0, days: 0, hours, minutes, seconds };
};
var formatDHMS = (s) => {
const days = Math.floor(s / InSeconds.day);
return { ...formatHMS(s % InSeconds.day), days };
};
var formatYMD = (s) => {
let remaining = 0;
const years = Math.floor(s / InSeconds.year);
remaining = s % InSeconds.year;
const months = Math.floor(remaining / InSeconds.month);
remaining %= InSeconds.month;
return { ...formatDHMS(remaining), years, months };
};
var formatTime = (s, format = "short") => {
if (format === "short") return formatTimeShort(formatHMS(s));
if (format === "long") return formatTimeLong(formatHMS(s));
if (format === "days") return formatTimeLong(formatDHMS(s));
if (format === "ymd") return formatTimeLong(formatYMD(s));
return formatYMD(s);
};
var formatBytes = (byte) => {
const num = Number(byte);
if (num && Number.isFinite(num)) {
return _prettybytes2.default.call(void 0, num);
}
return "0 B";
};
exports.computeProgress = computeProgress; exports.formatTimeShort = formatTimeShort; exports.formatTimeLong = formatTimeLong; exports.InSeconds = InSeconds; exports.formatHMS = formatHMS; exports.formatDHMS = formatDHMS; exports.formatYMD = formatYMD; exports.formatTime = formatTime; exports.formatBytes = formatBytes;