UNPKG

fiscalapi

Version:

SDK de Node.js para FiscalAPI

31 lines 3.52 kB
import { DateTime } from 'luxon'; /** * Formato de fecha SAT (para facturas mexicanas) */ export const SAT_DATE_FORMAT = 'yyyy-MM-dd\'T\'HH:mm:ss'; /** * Formatea una fecha de acuerdo al formato de fecha SAT * @param {Date|string|DateTime} date - Fecha a formatear * @returns {string} Cadena de fecha formateada */ export function formatSatDate(date) { if (typeof date === 'string') { return DateTime.fromISO(date).toFormat(SAT_DATE_FORMAT); } else if (date instanceof Date) { return DateTime.fromJSDate(date).toFormat(SAT_DATE_FORMAT); } else if (date instanceof DateTime) { return date.toFormat(SAT_DATE_FORMAT); } throw new Error('Formato de fecha inválido'); } /** * Analiza una cadena de formato de fecha SAT en un objeto DateTime * @param {string} dateStr - Cadena de fecha en formato SAT * @returns {DateTime} Objeto DateTime */ export function parseSatDate(dateStr) { return DateTime.fromFormat(dateStr, SAT_DATE_FORMAT); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9kYXRlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFHakM7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcseUJBQXlCLENBQUM7QUFFekQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBOEI7SUFDMUQsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM3QixPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFELENBQUM7U0FBTSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUNoQyxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzdELENBQUM7U0FBTSxJQUFJLElBQUksWUFBWSxRQUFRLEVBQUUsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBZTtJQUN4QyxPQUFPLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIgXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJztcblxuXG4vKipcbiAqIEZvcm1hdG8gZGUgZmVjaGEgU0FUIChwYXJhIGZhY3R1cmFzIG1leGljYW5hcylcbiAqL1xuZXhwb3J0IGNvbnN0IFNBVF9EQVRFX0ZPUk1BVCA9ICd5eXl5LU1NLWRkXFwnVFxcJ0hIOm1tOnNzJztcblxuLyoqXG4gKiBGb3JtYXRlYSB1bmEgZmVjaGEgZGUgYWN1ZXJkbyBhbCBmb3JtYXRvIGRlIGZlY2hhIFNBVFxuICogQHBhcmFtIHtEYXRlfHN0cmluZ3xEYXRlVGltZX0gZGF0ZSAtIEZlY2hhIGEgZm9ybWF0ZWFyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBDYWRlbmEgZGUgZmVjaGEgZm9ybWF0ZWFkYVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2F0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgRGF0ZVRpbWUpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmZyb21JU08oZGF0ZSkudG9Gb3JtYXQoU0FUX0RBVEVfRk9STUFUKTtcbiAgfSBlbHNlIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tSlNEYXRlKGRhdGUpLnRvRm9ybWF0KFNBVF9EQVRFX0ZPUk1BVCk7XG4gIH0gZWxzZSBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGVUaW1lKSB7XG4gICAgcmV0dXJuIGRhdGUudG9Gb3JtYXQoU0FUX0RBVEVfRk9STUFUKTtcbiAgfVxuICBcbiAgdGhyb3cgbmV3IEVycm9yKCdGb3JtYXRvIGRlIGZlY2hhIGludsOhbGlkbycpO1xufVxuXG4vKipcbiAqIEFuYWxpemEgdW5hIGNhZGVuYSBkZSBmb3JtYXRvIGRlIGZlY2hhIFNBVCBlbiB1biBvYmpldG8gRGF0ZVRpbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBkYXRlU3RyIC0gQ2FkZW5hIGRlIGZlY2hhIGVuIGZvcm1hdG8gU0FUXG4gKiBAcmV0dXJucyB7RGF0ZVRpbWV9IE9iamV0byBEYXRlVGltZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTYXREYXRlKGRhdGVTdHI6IHN0cmluZyk6IERhdGVUaW1lIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdChkYXRlU3RyLCBTQVRfREFURV9GT1JNQVQpO1xuICB9XG4gICJdfQ==