@nodecfdi/cfdi-cleaner
Version:
Librería para limpiar comprobantes fiscales digitales v3.3 y v4.0
25 lines (24 loc) • 1.03 kB
JavaScript
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);
}
}