UNPKG

@kubit-ui-web/react-components

Version:

Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience

51 lines 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transformDate = void 0; const common_constant_1 = require("./constants/common.constant"); const parser_constant_1 = require("./constants/parser.constant"); const formatDate_1 = require("./formatDate"); const getFormatParts = (format) => { const formatParts = format.match(common_constant_1.FORMATTING_TOKENS) || []; return formatParts.map((token) => { const parseTo = parser_constant_1.EXPRESSIONS[token]; const regex = parseTo && parseTo[0]; const key = parseTo && parseTo[1]; const execute = parseTo && parseTo[2]; return key ? { regex, key, execute } : token; }); }; const getDataObject = (date, formatParts) => { const dateObject = {}; let dateString = date; formatParts.forEach(token => { if (typeof token === 'string') { dateString = dateString.replace(token, ''); } else { const { regex, key, execute } = token; const match = regex.exec(dateString); const value = match ? match[0] : ''; dateObject[key] = execute ? execute(value) : +value; dateString = dateString.replace(value, ''); } }); return dateObject; }; const transformDate = (date, format) => { if (typeof date === 'number' || !format) { return (0, formatDate_1.formatDateToUTC)(date); } const formatParts = getFormatParts(format); const dateObject = getDataObject(date, formatParts); const { year, month, day, hours, minutes, seconds } = dateObject; const today = new Date(); const auxYear = year || today.getFullYear(); const auxMonth = month ? month - 1 : today.getMonth(); const auxDay = day || today.getDate(); const auxHours = hours || 0; const auxMinutes = minutes || 0; const auxSeconds = seconds || 0; return new Date(auxYear, auxMonth, auxDay, auxHours, auxMinutes, auxSeconds); }; exports.transformDate = transformDate; //# sourceMappingURL=transformDate.js.map