UNPKG

3.01 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const level_1 = require("./level");
4const helper_1 = require("./helper");
5if (helper_1.isNode) {
6 var chalk = require('chalk');
7 var path = require('path');
8 var fs = require('fs');
9 var JSON5 = require('json5');
10 var stringify = require('json-stringify-safe');
11}
12function consoleLog(data, level) {
13 if (level === level_1.Level.INFO)
14 console.info(data);
15 else if (level === level_1.Level.ERROR)
16 console.error(data);
17 else if (level === level_1.Level.WARN)
18 console.warn(data);
19 else
20 console.log(data);
21}
22exports.consoleLog = consoleLog;
23function displayParams(params = [], level) {
24 params.forEach(param => {
25 if (typeof param === 'object') {
26 handleObjectData(param, level);
27 }
28 else if (isObjectAfterStringify(param)) {
29 handleObjectData(JSON5.parse(param), level);
30 }
31 else {
32 consoleLog(param, level);
33 }
34 });
35}
36exports.displayParams = displayParams;
37function replace(out, match, char, color) {
38 let m = out.match(match);
39 let outer = out;
40 if (m)
41 m.forEach(p => {
42 const rep = p
43 .slice(1)
44 .replace(char, '');
45 outer = outer.replace(`"${rep}":`, `"${color.call(null, rep)}":`);
46 });
47 return outer;
48}
49function handleObjectData(param, level) {
50 if (istartedInVscode()) {
51 consoleLog(param, level);
52 return;
53 }
54 let out = stringify(param, null, 4);
55 out = replace(out, /\".*"\:\ \"/g, /\"\: "/, chalk.green);
56 out = replace(out, /\".*"\:\ \{/g, /\"\: \{/, chalk.yellow);
57 out = replace(out, /\".*"\:\ \[/g, /\"\: \[/, chalk.red);
58 out = replace(out, /\".*"\:\ true/g, /\"\: true/, chalk.blue);
59 out = replace(out, /\".*"\:\ false/g, /\"\: false/, chalk.blue);
60 out = replace(out, /\".*"\:\ (\-|[0-9])/g, /\"\: (\-|[0-9])/, chalk.magenta);
61 out = out.replace(/\"/g, chalk.dim('"'))
62 .replace(/\{/g, chalk.dim('{'))
63 .replace(/\}/g, chalk.dim('}'))
64 .replace(/\}/g, chalk.dim('}'));
65 if (process.stdout.columns && process.stdout.columns > 0) {
66 out = out.split('\n').map(line => {
67 return (line.length < process.stdout.columns ?
68 line :
69 line.slice(0, process.stdout.columns - 6) + chalk.dim('...'));
70 }).join('\n');
71 }
72 consoleLog(out, level);
73}
74function istartedInVscode() {
75 let args = process.execArgv;
76 if (args) {
77 return args.some((arg) => /^--debug=?/.test(arg) ||
78 /^--debug-brk=?/.test(arg) ||
79 /^--inspect=?/.test(arg) ||
80 /^--inspect-brk=?/.test(arg));
81 }
82 return false;
83}
84exports.istartedInVscode = istartedInVscode;
85function isObjectAfterStringify(s) {
86 try {
87 const json = JSON5.parse(s);
88 return true;
89 }
90 catch (error) {
91 return false;
92 }
93}
94//# sourceMappingURL=backend-logging.js.map
\No newline at end of file