UNPKG

zcatalyst-cli

Version:

Command Line Tool for CATALYST

94 lines (93 loc) 3.81 kB
'use strict'; 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); } }