UNPKG

@nodecfdi/cfdi-cleaner

Version:

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

28 lines (27 loc) 1.25 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const cfdi_core_1 = require("@nodecfdi/cfdi-core"); const ts_mixer_1 = require("ts-mixer"); const xml_namespace_methods_1 = __importDefault(require("#src/mixins/xml_namespace_methods")); class MoveNamespaceDeclarationToRoot extends (0, ts_mixer_1.Mixin)(xml_namespace_methods_1.default) { clean(document) { const rootElement = document.documentElement; for (const namespaceNode of this.iterateNonReservedNamespaces(document)) { this.cleanNameSpaceNode(rootElement, namespaceNode); } } cleanNameSpaceNode(rootElement, namespaceNode) { if (rootElement === namespaceNode.ownerElement) { return; } // If overlapped case if (!rootElement.hasAttribute(namespaceNode.nodeName) && namespaceNode.nodeValue) { rootElement.setAttributeNS(cfdi_core_1.NAMESPACE.XMLNS, namespaceNode.nodeName, namespaceNode.nodeValue); } this.removeNamespaceNodeAttribute(namespaceNode); } } exports.default = MoveNamespaceDeclarationToRoot;