@nodecfdi/cfdi-cleaner
Version:
Librería para limpiar comprobantes fiscales digitales v3.3 y v4.0
29 lines (28 loc) • 1.76 kB
JavaScript
import CollapseComplemento from '#src/xml_document_cleaners/collapse_complemento';
import MoveNamespaceDeclarationToRoot from '#src/xml_document_cleaners/move_namespace_declaration_to_root';
import MoveSchemaLocationsToRoot from '#src/xml_document_cleaners/move_schema_locations_to_root';
import RemoveAddenda from '#src/xml_document_cleaners/remove_addenda';
import RemoveIncompleteSchemaLocations from '#src/xml_document_cleaners/remove_incomplete_schema_locations';
import RemoveNonSatNamespacesNodes from '#src/xml_document_cleaners/remove_non_sat_namespaces_nodes';
import RemoveNonSatSchemaLocations from '#src/xml_document_cleaners/remove_non_sat_schema_locations';
import RemoveUnusedNamespaces from '#src/xml_document_cleaners/remove_unused_namespaces';
import RenameElementAddPrefix from '#src/xml_document_cleaners/rename_element_add_prefix';
import SetKnownSchemaLocations from '#src/xml_document_cleaners/set_known_schema_locations';
export default class XmlDocumentCleaners {
cleaners;
constructor(...cleaners) {
this.cleaners = cleaners;
}
static createDefault() {
return new XmlDocumentCleaners(new RemoveAddenda(), new RemoveIncompleteSchemaLocations(), new RemoveNonSatNamespacesNodes(), new RemoveNonSatSchemaLocations(), new RemoveUnusedNamespaces(), new RenameElementAddPrefix(), new MoveNamespaceDeclarationToRoot(), new MoveSchemaLocationsToRoot(), new SetKnownSchemaLocations(), new CollapseComplemento());
}
clean(document) {
for (const cleaner of this.cleaners) {
cleaner.clean(document);
}
}
withOutCleaners(excludeList) {
const cleaners = excludeList.filterObjects(...this.cleaners);
return new XmlDocumentCleaners(...cleaners);
}
}