navidev-adt-api
Version:
API de conexión al Abap Developer Tools
82 lines (80 loc) • 2.56 kB
JavaScript
;
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;