UNPKG

fiscalapi

Version:

SDK de Node.js para FiscalAPI

36 lines 3.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SAT_DATE_FORMAT = void 0; exports.formatSatDate = formatSatDate; exports.parseSatDate = parseSatDate; const luxon_1 = require("luxon"); /** * Formato de fecha SAT (para facturas mexicanas) */ exports.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 */ function formatSatDate(date) { if (typeof date === 'string') { return luxon_1.DateTime.fromISO(date).toFormat(exports.SAT_DATE_FORMAT); } else if (date instanceof Date) { return luxon_1.DateTime.fromJSDate(date).toFormat(exports.SAT_DATE_FORMAT); } else if (date instanceof luxon_1.DateTime) { return date.toFormat(exports.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 */ function parseSatDate(dateStr) { return luxon_1.DateTime.fromFormat(dateStr, exports.SAT_DATE_FORMAT); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy9kYXRlLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQWNBLHNDQVVDO0FBT0Qsb0NBRUc7QUFoQ0gsaUNBQWlDO0FBR2pDOztHQUVHO0FBQ1UsUUFBQSxlQUFlLEdBQUcseUJBQXlCLENBQUM7QUFFekQ7Ozs7R0FJRztBQUNILFNBQWdCLGFBQWEsQ0FBQyxJQUE4QjtJQUMxRCxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLE9BQU8sZ0JBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLHVCQUFlLENBQUMsQ0FBQztJQUMxRCxDQUFDO1NBQU0sSUFBSSxJQUFJLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDaEMsT0FBTyxnQkFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsdUJBQWUsQ0FBQyxDQUFDO0lBQzdELENBQUM7U0FBTSxJQUFJLElBQUksWUFBWSxnQkFBUSxFQUFFLENBQUM7UUFDcEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLHVCQUFlLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLE9BQWU7SUFDeEMsT0FBTyxnQkFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsdUJBQWUsQ0FBQyxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIgXG5pbXBvcnQgeyBEYXRlVGltZSB9IGZyb20gJ2x1eG9uJztcblxuXG4vKipcbiAqIEZvcm1hdG8gZGUgZmVjaGEgU0FUIChwYXJhIGZhY3R1cmFzIG1leGljYW5hcylcbiAqL1xuZXhwb3J0IGNvbnN0IFNBVF9EQVRFX0ZPUk1BVCA9ICd5eXl5LU1NLWRkXFwnVFxcJ0hIOm1tOnNzJztcblxuLyoqXG4gKiBGb3JtYXRlYSB1bmEgZmVjaGEgZGUgYWN1ZXJkbyBhbCBmb3JtYXRvIGRlIGZlY2hhIFNBVFxuICogQHBhcmFtIHtEYXRlfHN0cmluZ3xEYXRlVGltZX0gZGF0ZSAtIEZlY2hhIGEgZm9ybWF0ZWFyXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBDYWRlbmEgZGUgZmVjaGEgZm9ybWF0ZWFkYVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0U2F0RGF0ZShkYXRlOiBEYXRlIHwgc3RyaW5nIHwgRGF0ZVRpbWUpOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIGRhdGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIERhdGVUaW1lLmZyb21JU08oZGF0ZSkudG9Gb3JtYXQoU0FUX0RBVEVfRk9STUFUKTtcbiAgfSBlbHNlIGlmIChkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgIHJldHVybiBEYXRlVGltZS5mcm9tSlNEYXRlKGRhdGUpLnRvRm9ybWF0KFNBVF9EQVRFX0ZPUk1BVCk7XG4gIH0gZWxzZSBpZiAoZGF0ZSBpbnN0YW5jZW9mIERhdGVUaW1lKSB7XG4gICAgcmV0dXJuIGRhdGUudG9Gb3JtYXQoU0FUX0RBVEVfRk9STUFUKTtcbiAgfVxuICBcbiAgdGhyb3cgbmV3IEVycm9yKCdGb3JtYXRvIGRlIGZlY2hhIGludsOhbGlkbycpO1xufVxuXG4vKipcbiAqIEFuYWxpemEgdW5hIGNhZGVuYSBkZSBmb3JtYXRvIGRlIGZlY2hhIFNBVCBlbiB1biBvYmpldG8gRGF0ZVRpbWVcbiAqIEBwYXJhbSB7c3RyaW5nfSBkYXRlU3RyIC0gQ2FkZW5hIGRlIGZlY2hhIGVuIGZvcm1hdG8gU0FUXG4gKiBAcmV0dXJucyB7RGF0ZVRpbWV9IE9iamV0byBEYXRlVGltZVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTYXREYXRlKGRhdGVTdHI6IHN0cmluZyk6IERhdGVUaW1lIHtcbiAgICByZXR1cm4gRGF0ZVRpbWUuZnJvbUZvcm1hdChkYXRlU3RyLCBTQVRfREFURV9GT1JNQVQpO1xuICB9XG4gICJdfQ==