UNPKG

ng2-logger

Version:

isomorphic logger for browser/server in typescript

111 lines 3.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var level_1 = require("./level"); var helper_1 = require("./helper"); if (helper_1.isNode) { //#region @backend var chalk = require('chalk'); var path = require('path'); var fs = require('fs'); var JSON5 = require('json5'); var stringify = require('json-stringify-safe'); //#endregion } function consoleLog(data, level) { //#region @backend if (level === level_1.Level.INFO) console.info(data); else if (level === level_1.Level.ERROR) console.error(data); else if (level === level_1.Level.WARN) console.warn(data); else console.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("\"" + rep + "\":", "\"" + 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, /\"\: "/, chalk.green); out = replace(out, /\".*"\:\ \{/g, /\"\: \{/, chalk.yellow); out = replace(out, /\".*"\:\ \[/g, /\"\: \[/, chalk.red); out = replace(out, /\".*"\:\ true/g, /\"\: true/, chalk.blue); out = replace(out, /\".*"\:\ false/g, /\"\: false/, chalk.blue); out = replace(out, /\".*"\:\ (\-|[0-9])/g, /\"\: (\-|[0-9])/, chalk.magenta); out = out.replace(/\"/g, chalk.dim('"')) .replace(/\{/g, chalk.dim('{')) .replace(/\}/g, chalk.dim('}')) .replace(/\}/g, 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) + 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 { var json = JSON5.parse(s); return true; } catch (error) { return false; } //#endregion } //# sourceMappingURL=backend-logging.js.map