@broadcom/sysview-for-zowe-cli
Version:
Zowe CLI plugin for SYSVIEW
141 lines • 7.58 kB
JavaScript
;
/*
* Copyright (c) 2020 Broadcom. All Rights Reserved. The term
* "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
*
* This software and all information contained therein is
* confidential and proprietary and shall not be duplicated,
* used, disclosed, or disseminated in any way except as
* authorized by the applicable license agreement, without the
* express written permission of Broadcom. All authorized
* reproductions must be marked with this language.
*
* EXCEPT AS SET FORTH IN THE APPLICABLE LICENSE AGREEMENT, TO
* THE EXTENT PERMITTED BY APPLICABLE LAW, BROADCOM PROVIDES THIS
* SOFTWARE WITHOUT WARRANTY OF ANY KIND, INCLUDING WITHOUT
* LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
* FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL BROADCOM
* BE LIABLE TO THE END USER OR ANY THIRD PARTY FOR ANY LOSS OR
* DAMAGE, DIRECT OR INDIRECT, FROM THE USE OF THIS SOFTWARE,
* INCLUDING WITHOUT LIMITATION, LOST PROFITS, BUSINESS
* INTERRUPTION, GOODWILL, OR LOST DATA, EVEN IF BROADCOM IS
* EXPRESSLY ADVISED OF SUCH LOSS OR DAMAGE.
*
*/
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const imperative = require("@zowe/imperative");
const api = require("../../api");
class DisplayHandler {
process(params) {
return __awaiter(this, void 0, void 0, function* () {
var _a, _b, _c, _d;
// send request
const session = yield api.SysviewSession.createSysviewSessionFromArguments(params.arguments);
const parms = {
command: params.arguments.commandString,
ssid: params.arguments.ssid,
rowstart: params.arguments.allRows ? undefined : params.arguments.rowStart,
rowend: params.arguments.allRows ? undefined : params.arguments.rowEnd,
fields: params.arguments.fields,
types: ["CONTEXT", "DATAALL"],
timeout: params.arguments.timeout
};
if (params.arguments.overview)
parms.types.push("OVERVIEW");
if (params.arguments.info)
parms.types.push("INFOALL");
// DATAFLDS is included in DATAALL to display field headers instead of field names,
// and STATUS is not currently used in the CLI
// if (params.arguments.pretty) parms.types.push("DATAFLDS", "STATUS");
const response = yield api.display(session, parms);
// display requested context fields
const color = imperative.ImperativeConfig.instance.loadedConfig.primaryTextColor;
if (response.context && params.arguments.contextFields) {
if (params.arguments.csv) {
params.response.console.log("Context:");
for (const field of params.arguments.contextFields) {
params.response.console.log(`${field},${response.context[field]}`);
}
params.response.console.log(``);
}
else {
const contextObj = {};
for (const field of params.arguments.contextFields) {
contextObj[field] = response.context[field];
}
params.response.console.log(imperative.TextUtils.chalk[color]("Context:"));
params.response.console.log(imperative.TextUtils.prettyJson(contextObj));
}
}
// display message
if ((_a = response.context) === null || _a === void 0 ? void 0 : _a.message) {
if (params.arguments.csv) {
params.response.console.log(`Message: ${response.context.message}\n`);
}
else {
params.response.console.log(imperative.TextUtils.prettyJson({ Message: response.context.message }));
}
}
// display overview
if (params.arguments.overview && ((_b = response.overRowsRL) === null || _b === void 0 ? void 0 : _b.length) > 0) {
if (params.arguments.csv) {
params.response.console.log("Overview:");
params.response.console.log(response.overRowsRL.join("\n") + "\n");
}
else {
params.response.console.log(imperative.TextUtils.chalk[color]("Overview:"));
params.response.console.log(response.overRowsRL.join("\n") + "\n");
}
}
// display info area
if (params.arguments.info && ((_c = response.infoRows) === null || _c === void 0 ? void 0 : _c.length) > 0) {
if (params.arguments.csv) {
params.response.console.log("Info area:");
params.response.console.log(response.infoRows.join("\n") + "\n");
}
else {
params.response.console.log(imperative.TextUtils.chalk[color]("Info area:"));
params.response.console.log(response.infoRows.join("\n") + "\n");
}
}
// display data rows
if (params.arguments.csv) {
params.response.console.log(response.dataRows.fields.join());
response.dataRows.values.forEach(row => params.response.console.log(row.map(field => field[0]).join()));
return;
}
const parsedDataRows = api.Utils.parseDataRows(response, {
pretty: params.arguments.pretty,
blankIfZero: params.arguments.blankIfZero,
fields: params.arguments.fields
});
if (((_d = response.dataRows) === null || _d === void 0 ? void 0 : _d.fields.length) === 1 && response.dataRows.fields[0] === "Data") {
params.response.console.log(response.dataRows.values.map(value => value[0][0]).join("\n") + "\n");
}
else {
const headers = api.Utils.getHeadersFromDataFlds(response.dataFlds, params.arguments.fields).map(header => header[0]);
const tableText = imperative.TextUtils.getTable(parsedDataRows, color, Infinity, true, false, false, headers);
if (params.arguments.truncate) {
const truncatedText = tableText.split("\n").map(line => imperative.TextUtils.wordWrap(line, Infinity, undefined, true, false).split("\n")[0]).join("\n");
params.response.console.log(truncatedText);
}
else {
params.response.console.log(tableText);
}
}
// set JSON object
params.response.data.setObj({ fullResponse: response, parsedDataRows });
});
}
}
exports.default = DisplayHandler;
//# sourceMappingURL=Display.handler.js.map