UNPKG

navidev-adt-api

Version:

API de conexión al Abap Developer Tools

82 lines (80 loc) 2.56 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const fast_xml_parser_1 = require("fast-xml-parser"); const isValidations_1 = __importDefault(require("../general/isValidations")); class XMLParserUtils { /** * Convierte un XML string a un objeto JSON para poder procesar * @param xml | XML en string * @param options | Opciones del parseador * @returns Objeto JSON */ static fullParse(xml, options = {}) { /* ignoreAttributes: false, trimValues: false, parseAttributeValue: true, */ return new fast_xml_parser_1.XMLParser(Object.assign({ ignoreAttributes: false, trimValues: false, parseAttributeValue: true }, options)).parse(xml); } /** * Convierto un objeto JSON en XML * @param object Objeto JSON * @param options Opciones del parseador * @returns XML */ static buildXML(object) { return new fast_xml_parser_1.XMLBuilder({ ignoreAttributes: false, }).build(object); } /** * Devuelve el array final * @param xml | Objeto XML parseado con XMLParser * @param path | Path del XML que se quieren quitar * @returns Array final del objeto XML */ static xmlArray(xml, ...path) { const node = this.xmlNode(xml, ...path); if (node) { if (isValidations_1.default.isArray(node)) return node; else return [node]; } return []; } /** * Quita los nodos, parametro path, del objeto XML pasado por parámetro * @param xml | Objeto XML * @param path | Nodos a quitar del objeto XML * @returns Array con los valores */ static xmlNode(xml, ...path) { let current = xml; path.some((key) => { if (isValidations_1.default.isObject(current)) current = current[key]; return !current; }); return current; } /** * Convierte un nodo en un array. Si ya es un array lo devuelve tal cual. * @param node Nodo del XML * @returns Array del nodo */ static nodeArray(node) { if (node) { if (isValidations_1.default.isArray(node)) return node; else return [node]; } return []; } } exports.default = XMLParserUtils;