UNPKG

navidev-adt-api

Version:

API de conexión al Abap Developer Tools

58 lines (57 loc) 2.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class ExtractData { /** * Extrae la posición donde esta el error, o cualquier cosa, que suele venir en una URL. * Esto suele venir cuando se valida un objeto o se activa, que el ADT devuelve en una URL * la posición del error. * @param uri url con la posición del problema * @returns Posición */ static position(uri) { if (uri) { let parts = uri.split("="); if (parts.length == 2) return parts[1]; } return ""; } /** * Extrae la posición de un elemento * @param elementInfo Valor del elemento * @returns tipo de bloque */ static extractSourcePositionBlockElement(elementInfo) { // './source/main#start=7,15;end=7,31' let response = { source: "", start: "", end: "" }; let parts = elementInfo.split("#"); if (parts.length == 2) { /* Lugar del objeto donde esta el objeto Hay casos que el path viene así: ""./source/main" pero otras veces llega así: "./../zcl_test_adt/source/main". Con lo cual hago split por el carácter "/" y me quedo con los dos ultimos registros que es el path */ let sourcePaths = parts[0].split("/"); response.source = `${sourcePaths[sourcePaths.length - 2]}/${sourcePaths[sourcePaths.length - 1]}`; // Posición en el código fuente if (parts[1].includes(";")) { parts[1].split(";").forEach((position) => { let subParts = position.split("="); if (subParts[0] == "start") response.start = subParts[1]; if (subParts[0] == "end") response.end = subParts[1]; }); } else { let subParts = parts[1].split("="); if (subParts[0] == "start") response.start = subParts[1]; if (subParts[0] == "end") response.end = subParts[1]; } } return response; } } exports.default = ExtractData;