UNPKG

@nodecfdi/cfdi-cleaner

Version:

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

27 lines (26 loc) 971 B
import { Mixin } from 'ts-mixer'; import CfdiXPath from '#src/internal/cfdi_x_path'; import XmlElementMethods from '#src/mixins/xml_element_methods'; export default class CollapseComplemento extends Mixin(XmlElementMethods) { clean(document) { const xpath = CfdiXPath.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); } } }