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