@widergy/web-utils
Version:
Utility GO! Web utils
112 lines (111 loc) • 3.63 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.beforeToday = exports.getCurrentDate = void 0;
exports.formatDatePartialFormat = formatDatePartialFormat;
exports.formatDateFullFormat = formatDateFullFormat;
exports.formatDatePartialFormatPreviousYear = formatDatePartialFormatPreviousYear;
exports.formatDateToYYMMDDDD = formatDateToYYMMDDDD;
exports.getMonthNumber = getMonthNumber;
exports.getYearNumber = getYearNumber;
exports.dateToString = dateToString;
exports.howLongSince = howLongSince;
const dayjs_1 = __importDefault(require("dayjs"));
const isSameOrBefore_1 = __importDefault(require("dayjs/plugin/isSameOrBefore"));
dayjs_1.default.extend(isSameOrBefore_1.default);
function formatDatePartialFormat(date) {
if (!date || !RegExp(/^\d{6,}$/).test(date)) {
return date;
}
return `${date.substring(4, 6)}/${date.substring(0, 4)}`;
}
function formatDateFullFormat(date) {
if (!date) {
return date;
}
return `${date.substring(8, 10)}/${date.substring(5, 7)}/${date.substring(0, 4)}`;
}
function formatDatePartialFormatPreviousYear(period) {
if (!period) {
return period;
}
return `${period.substring(4, 6)}/${parseInt(period.substring(0, 4), 10) - 1}`;
}
function formatDateToYYMMDDDD(date) {
if (!date) {
return date;
}
return `${date.substring(6, 10)}-${date.substring(3, 5)}-${date.substring(0, 2)}`;
}
function getMonthNumber(period) {
return parseInt(period.substring(4, 6), 10);
}
function getYearNumber(period) {
return parseInt(period.substring(0, 4), 10);
}
function dateToString(date) {
return `${date.getYear() + 1900}-${('0' + (date.getMonth() + 1)).substr(-2)}-${('0' + date.getDate()).substr(-2)}`;
}
function howLongSince(since, until) {
if (!since || since > until) {
return ' ';
}
const timeConstants = [1000, 60, 60, 24, 7, 4.3, 12];
const detailString = [
{
singular: 'seg.',
plural: 'seg.'
},
{
singular: 'min.',
plural: 'min.'
},
{
singular: 'hora',
plural: 'horas'
},
{
singular: 'día',
plural: 'días'
},
{
singular: 'semana',
plural: 'semanas'
},
{
singular: 'mes',
plural: 'meses'
},
{
singular: 'año',
plural: 'años'
}
];
let value = new Date(until).getTime() - new Date(since).getTime();
for (let i = 0; i < timeConstants.length; i += 1) {
value = Math.abs(Math.trunc(value / timeConstants[i]));
if (!timeConstants[i + 1] || value < timeConstants[i + 1]) {
return `HACE ${value} ${value > 1 ? detailString[i].plural : detailString[i].singular}`;
}
}
return ' ';
}
const getCurrentDate = (dateFormat) => dateFormat ? (0, dayjs_1.default)().format(dateFormat) : (0, dayjs_1.default)();
exports.getCurrentDate = getCurrentDate;
const beforeToday = (date) => (0, dayjs_1.default)().isSameOrBefore(date);
exports.beforeToday = beforeToday;
const DATE_UTILS = {
formatDatePartialFormat,
formatDateFullFormat,
formatDatePartialFormatPreviousYear,
formatDateToYYMMDDDD,
getMonthNumber,
getYearNumber,
dateToString,
howLongSince,
getCurrentDate: exports.getCurrentDate,
beforeToday: exports.beforeToday
};
exports.default = DATE_UTILS;