UNPKG

ng2-logger

Version:

isomorphic logger for browser/server in typescript

115 lines 3.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.istartedInVscode = exports.displayParams = exports.consoleLog = void 0; //#endregion var level_1 = require("./level"); //#region @backend var tnp_core_1 = require("tnp-core"); var json5 = require("json5"); var stringify = require("json-stringify-safe"); var tnp_core_2 = require("tnp-core"); //#endregion function consoleLog(data, level) { //#region @backend if (level === level_1.Level.INFO) tnp_core_2.Helpers.info(data); else if (level === level_1.Level.ERROR) tnp_core_2.Helpers.error(data); else if (level === level_1.Level.WARN) tnp_core_2.Helpers.warn(data); else if (level === level_1.Level.SUCCESS) tnp_core_2.Helpers.success(data); else if (level === level_1.Level.TASK_STARTED) tnp_core_2.Helpers.taskStarted(data); else if (level === level_1.Level.TASK_DONE) tnp_core_2.Helpers.taskDone(data); else tnp_core_2.Helpers.log(data); //#endregion } exports.consoleLog = consoleLog; function displayParams(params, level) { if (params === void 0) { params = []; } //#region @backend params.forEach(function (param) { if (typeof param === 'object') { handleObjectData(param, level); } else if (isObjectAfterStringify(param)) { handleObjectData(json5.parse(param), level); } else { consoleLog(param, level); } }); //#endregion } exports.displayParams = displayParams; function replace(out, match, char, color) { //#region @backend var m = out.match(match); var outer = out; if (m) m.forEach(function (p) { var rep = p .slice(1) .replace(char, ''); outer = outer.replace("\"".concat(rep, "\":"), "\"".concat(color.call(null, rep), "\":")); }); return outer; //#endregion } function handleObjectData(param, level) { //#region @backend if (istartedInVscode()) { consoleLog(param, level); return; } var out = stringify(param, null, 4); out = replace(out, /\".*"\:\ \"/g, /\"\: "/, tnp_core_1.chalk.green); out = replace(out, /\".*"\:\ \{/g, /\"\: \{/, tnp_core_1.chalk.yellow); out = replace(out, /\".*"\:\ \[/g, /\"\: \[/, tnp_core_1.chalk.red); out = replace(out, /\".*"\:\ true/g, /\"\: true/, tnp_core_1.chalk.blue); out = replace(out, /\".*"\:\ false/g, /\"\: false/, tnp_core_1.chalk.blue); out = replace(out, /\".*"\:\ (\-|[0-9])/g, /\"\: (\-|[0-9])/, tnp_core_1.chalk.magenta); out = out.replace(/\"/g, tnp_core_1.chalk.dim('"')) .replace(/\{/g, tnp_core_1.chalk.dim('{')) .replace(/\}/g, tnp_core_1.chalk.dim('}')) .replace(/\}/g, tnp_core_1.chalk.dim('}')); if (process.stdout.columns && process.stdout.columns > 0) { out = out.split('\n').map(function (line) { return (line.length < process.stdout.columns ? line : line.slice(0, process.stdout.columns - 6) + tnp_core_1.chalk.dim('...')); }).join('\n'); } consoleLog(out, level); //#endregion } function istartedInVscode() { //#region @backend var args = process.execArgv; if (args) { return args.some(function (arg) { return /^--debug=?/.test(arg) || /^--debug-brk=?/.test(arg) || /^--inspect=?/.test(arg) || /^--inspect-brk=?/.test(arg); }); } return false; //#endregion } exports.istartedInVscode = istartedInVscode; function isObjectAfterStringify(s) { //#region @backend try { json5.parse(s); return true; } catch (error) { return false; } //#endregion } //# sourceMappingURL=backend-logging.js.map