UNPKG

abap-adt-api

Version:

Interface to Abap Developer Tools webservice

98 lines (97 loc) 5.45 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.tracesDelete = exports.tracesDeleteConfiguration = exports.tracesCreateConfiguration = exports.tracesSetParameters = exports.tracesStatements = exports.tracesDbAccess = exports.tracesHitList = exports.tracesListRequests = exports.tracesList = exports.traceProcessObjects = void 0; const tracetypes_1 = require("./tracetypes"); const __1 = require(".."); var tracetypes_2 = require("./tracetypes"); Object.defineProperty(exports, "traceProcessObjects", { enumerable: true, get: function () { return tracetypes_2.traceProcessObjects; } }); const tracesList = async (h, user) => { const qs = { user: user.toUpperCase() }; const response = await h.request(`/sap/bc/adt/runtime/traces/abaptraces`, { qs }); return (0, tracetypes_1.parseTraceResults)(response.body); }; exports.tracesList = tracesList; const tracesListRequests = async (h, user) => { const qs = { user: user.toUpperCase() }; const response = await h.request(`/sap/bc/adt/runtime/traces/abaptraces/requests`, { qs }); return (0, tracetypes_1.parseTraceRequestList)(response.body); }; exports.tracesListRequests = tracesListRequests; const traceId = (id) => id.startsWith("/sap/bc/adt/runtime/traces/abaptraces/") ? id : `/sap/bc/adt/runtime/traces/abaptraces/${id}`; const tracesHitList = async (h, id, withSystemEvents = false) => { const opts = { qs: { withSystemEvents } }; const response = await h.request(`${traceId(id)}/hitlist`, opts); return (0, tracetypes_1.parseTraceHitList)(response.body); }; exports.tracesHitList = tracesHitList; const tracesDbAccess = async (h, id, withSystemEvents = false) => { const opts = { qs: { withSystemEvents } }; const response = await h.request(`${traceId(id)}/dbAccesses`, opts); return (0, tracetypes_1.parseTraceDbAccess)(response.body); }; exports.tracesDbAccess = tracesDbAccess; const tracesStatements = async (h, id, options = {}) => { const headers = { Accept: "application/vnd.sap.adt.runtime.traces.abaptraces.aggcalltree+xml, application/xml" }; const opts = { qs: options, headers }; const response = await h.request(`${traceId(id)}/statements`, opts); return (0, tracetypes_1.parseTraceStatements)(response.body); }; exports.tracesStatements = tracesStatements; const tracesSetParameters = async (h, parameters) => { const headers = { "Content-Type": "application/xml" }; const body = `<?xml version="1.0" encoding="UTF-8"?> <trc:parameters xmlns:trc="http://www.sap.com/adt/runtime/traces/abaptraces"> <trc:allMiscAbapStatements value="${parameters.allMiscAbapStatements}"></trc:allMiscAbapStatements> <trc:allProceduralUnits value="${parameters.allProceduralUnits}"></trc:allProceduralUnits> <trc:allInternalTableEvents value="${parameters.allInternalTableEvents}"></trc:allInternalTableEvents> <trc:allDynproEvents value="${parameters.allDynproEvents}"></trc:allDynproEvents> <trc:description value="${parameters.description}"></trc:description> <trc:aggregate value="${parameters.aggregate}"></trc:aggregate> <trc:explicitOnOff value="${parameters.explicitOnOff}"></trc:explicitOnOff> <trc:withRfcTracing value="${parameters.withRfcTracing}"></trc:withRfcTracing> <trc:allSystemKernelEvents value="${parameters.allSystemKernelEvents}"></trc:allSystemKernelEvents> <trc:sqlTrace value="${parameters.sqlTrace}"></trc:sqlTrace> <trc:allDbEvents value="${parameters.allDbEvents}"></trc:allDbEvents> <trc:maxSizeForTraceFile value="${parameters.maxSizeForTraceFile}"></trc:maxSizeForTraceFile> <trc:maxTimeForTracing value="${parameters.maxTimeForTracing}"></trc:maxTimeForTracing> </trc:parameters>`; const opts = { headers, method: "POST", body }; const response = await h.request(`/sap/bc/adt/runtime/traces/abaptraces/parameters`, opts); const uri = response.headers["location"]; if (!uri) throw (0, __1.adtException)("trace configuration not set"); return uri; }; exports.tracesSetParameters = tracesSetParameters; const tracesCreateConfiguration = async (h, config) => { if (!tracetypes_1.traceProcessObjects[config.processType].includes(config.objectType)) throw (0, __1.adtException)(`Invalid process type ${config.processType} or object type ${config.objectType}`); const qs = { ...config, server: config.server || "*", processType: tracetypes_1.traceProcessTypeUris[config.processType], objectType: tracetypes_1.traceObjectTypeUris[config.objectType] }; const opts = { method: "POST", qs }; const response = await h.request(`/sap/bc/adt/runtime/traces/abaptraces/requests`, opts); return (0, tracetypes_1.parseTraceRequestList)(response.body); }; exports.tracesCreateConfiguration = tracesCreateConfiguration; const tracesDeleteConfiguration = async (h, id) => { const prefix = `/sap/bc/adt/runtime/traces/abaptraces/requests`; const url = id.startsWith(prefix) ? id : `${prefix}/${id}`; await h.request(url, { method: "DELETE" }); }; exports.tracesDeleteConfiguration = tracesDeleteConfiguration; const tracesDelete = async (h, id) => { const prefix = `/sap/bc/adt/runtime/traces/abaptraces/`; const url = id.startsWith(prefix) ? id : `${prefix}/${id}`; await h.request(url, { method: "DELETE" }); }; exports.tracesDelete = tracesDelete;