zcatalyst-cli
Version:
Command Line Tool for CATALYST
97 lines (96 loc) • 3.84 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = require("path");
const runtime_store_1 = __importDefault(require("../runtime-store"));
const ansi_colors_1 = require("ansi-colors");
const fs_1 = require("./fs");
const logger_1 = require("./logger");
const toml_1 = require("./parser/toml");
function help() {
let exitCode = 0;
const logs = runtime_store_1.default.get('log');
if (logs === undefined) {
(0, logger_1.debug)('NO ERRORS REGISTERED');
return exitCode;
}
const logKeys = Object.keys(logs);
const fillTemplate = (...arg) => {
const context = arg.shift();
const aid = arg.shift();
return {
context: eval('`' + context + '`'),
aid: eval('`' + aid + '`')
};
};
logKeys.forEach((key) => {
var _a;
const errQueue = logs[key];
if (errQueue.length === 0) {
return;
}
if (key === 'faultyError') {
errQueue.forEach((err) => {
exitCode = err.exit > exitCode ? err.exit : exitCode;
outputError(err, errQueue);
return;
});
}
const docPath = ((_a = errQueue[0].fileName) === null || _a === void 0 ? void 0 : _a.replace((0, path_1.join)(__dirname, '../../lib'), (0, path_1.join)(__dirname, '../../docs'))) + '.toml';
const doc = fs_1.SYNC.readFile(docPath) || '';
const catHelp = (0, toml_1.parseTOML)(doc);
errQueue.forEach((err) => {
exitCode = err.exit > exitCode ? err.exit : exitCode;
if (err.errorId === undefined ||
catHelp === undefined ||
Object.keys(catHelp).length === 0) {
outputError(err, errQueue);
return;
}
const arg = err.arg || [];
const helpTemplate = catHelp[err.errorId];
if (helpTemplate === undefined || helpTemplate.context === undefined) {
(0, logger_1.debug)('Error when fetching the help');
(0, logger_1.debug)('No Help found for errorId: ' + err.errorId);
outputError(err, errQueue);
return;
}
const help = fillTemplate(helpTemplate.context, helpTemplate.aid || '', ...arg);
(0, logger_1.info)();
(0, logger_1.labeled)((0, ansi_colors_1.bold)('Error'), help.context).ERROR();
debugLog(err);
(0, logger_1.info)();
(0, logger_1.log)('error', help.aid);
if (helpTemplate.link && helpTemplate.link !== '') {
(0, logger_1.info)();
(0, logger_1.log)('error', (0, ansi_colors_1.bold)((0, ansi_colors_1.blue)('REF: ') + (0, ansi_colors_1.underline)(helpTemplate.link)));
}
errQueue.shift();
});
});
return exitCode;
}
exports.default = help;
function outputError(err, errQueue) {
(0, logger_1.error)(err.message);
debugLog(err);
errQueue.shift();
if (err.exit === 2) {
(0, logger_1.info)(`Kindly contact Catalyst support [${ansi_colors_1.bold.underline('support@zohocatalyst.com')}] if you need any further assistance`);
}
}
function debugLog(err) {
(0, logger_1.debug)('Error Stack: ' + err.stack);
if (err.original) {
(0, logger_1.debug)('Original Error: ' +
(typeof err.original === 'string' ? err.original : err.original.stack));
}
if (err.context) {
(0, logger_1.debug)('Error Context: ' + JSON.stringify(err.context, undefined, 2));
}
if (err.status) {
(0, logger_1.debug)('Error Status: ' + err.status);
}
}