UNPKG

@nodecfdi/cfdi-cleaner

Version:

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

25 lines (24 loc) 1.03 kB
import AppendXmlDeclaration from '#src/xml_string_cleaners/append_xml_declaration'; import RemoveNonXmlStrings from '#src/xml_string_cleaners/remove_non_xml_strings'; import SplitXmlDeclarationFromDocument from '#src/xml_string_cleaners/split_xml_declaration_from_document'; import XmlNsSchemaLocation from '#src/xml_string_cleaners/xml_ns_schema_location'; export default class XmlStringCleaners { cleaners; constructor(...cleaners) { this.cleaners = cleaners; } static createDefault() { return new XmlStringCleaners(new RemoveNonXmlStrings(), new SplitXmlDeclarationFromDocument(), new AppendXmlDeclaration(), new XmlNsSchemaLocation()); } clean(xml) { let xmlResult = xml; for (const cleaner of this.cleaners) { xmlResult = cleaner.clean(xmlResult); } return xmlResult; } withOutCleaners(excludeList) { const cleaners = excludeList.filterObjects(...this.cleaners); return new XmlStringCleaners(...cleaners); } }