@nodecfdi/cfdi-cleaner
Version:
Librería para limpiar comprobantes fiscales digitales v3.3 y v4.0
37 lines (36 loc) • 1.35 kB
JavaScript
import { getSerializer, newDocumentContent } from '@nodecfdi/cfdi-core';
import XmlDocumentCleaners from '#src/xml_document_cleaners';
import XmlStringCleaners from '#src/xml_string_cleaners';
export default class Cleaner {
_stringCleaners;
_xmlCleaners;
constructor(stringCleaners = null, xmlDocumentCleaners = null) {
this._stringCleaners = stringCleaners ?? XmlStringCleaners.createDefault();
this._xmlCleaners = xmlDocumentCleaners ?? XmlDocumentCleaners.createDefault();
}
static staticClean(xml) {
return new Cleaner().cleanStringToString(xml);
}
exclude(excludeList) {
this._stringCleaners = this._stringCleaners.withOutCleaners(excludeList);
this._xmlCleaners = this._xmlCleaners.withOutCleaners(excludeList);
}
cleanString(xml) {
return this._stringCleaners.clean(xml);
}
cleanDocument(document) {
this._xmlCleaners.clean(document);
}
cleanStringToDocument(xml) {
const xmlClean = this.cleanString(xml);
const document = this.createDocument(xmlClean);
this.cleanDocument(document);
return document;
}
cleanStringToString(xml) {
return getSerializer().serializeToString(this.cleanStringToDocument(xml));
}
createDocument(xml) {
return newDocumentContent(xml);
}
}