UNPKG

@nodecfdi/cfdi-cleaner

Version:

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

29 lines (28 loc) 1.76 kB
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); } }