UNPKG

@nodecfdi/cfdi-cleaner

Version:

Librería para limpiar comprobantes fiscales digitales v3.3 y v4.0

33 lines (32 loc) 1.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ts_mixer_1 = require("ts-mixer"); const cfdi_x_path_1 = __importDefault(require("#src/internal/cfdi_x_path")); const xml_element_methods_1 = __importDefault(require("#src/mixins/xml_element_methods")); class CollapseComplemento extends (0, ts_mixer_1.Mixin)(xml_element_methods_1.default) { clean(document) { const xpath = cfdi_x_path_1.default.createFromDocument(document); const complementos = xpath.queryElements('/cfdi:Comprobante/cfdi:Complemento'); if (complementos.length < 2) { return; } let receiver = null; for (const complemento of complementos) { // First complemento if (!receiver) { receiver = complemento; continue; } // Non-first complemento while (complemento.childNodes.length > 0) { const child = complemento.childNodes.item(0); this.elementMove(child, receiver); } this.elementRemove(complemento); } } } exports.default = CollapseComplemento;