zcatalyst-cli
Version:
Command Line Tool for CATALYST
94 lines (93 loc) • 3.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const utils_js_1 = require("./utils.js");
const ansi_colors_1 = require("ansi-colors");
const index_js_1 = require("../util_modules/fs/index.js");
const logger_1 = require("../util_modules/logger");
const toml_js_1 = require("../util_modules/toml.js");
const util_1 = require("util");
function help() {
let exitCode = 0;
const logs = utils_js_1.runtime.get('context.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) => {
const errQueue = logs[key];
if (!Array.isArray(errQueue) || errQueue.length === 0) {
return;
}
if (key === 'faultyError') {
errQueue === null || errQueue === void 0 ? void 0 : errQueue.forEach((err) => {
exitCode = err.exit > exitCode ? err.exit : exitCode;
outputError(err, errQueue);
return;
});
}
const docPath = key + '.toml';
const doc = index_js_1.SYNC.readFile(docPath) || '';
const catHelp = (0, toml_js_1.parseTOML)(doc);
errQueue === null || errQueue === void 0 ? void 0 : 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();
});
});
utils_js_1.runtime.set('context.log', {});
return exitCode;
}
exports.default = help;
function outputError(err, errQueue) {
(0, logger_1.error)(err.message);
debugLog(err);
errQueue === null || errQueue === void 0 ? void 0 : 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 : (0, util_1.inspect)(err.original)));
}
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);
}
}