UNPKG

1.49 kBJavaScriptView Raw
1"use strict";
2// tslint:disable
3Object.defineProperty(exports, "__esModule", { value: true });
4const tslib_1 = require("tslib");
5const chalk_1 = tslib_1.__importDefault(require("chalk"));
6const util = tslib_1.__importStar(require("util"));
7function styledObject(obj, keys) {
8 let output = [];
9 let keyLengths = Object.keys(obj).map(key => key.toString().length);
10 let maxKeyLength = Math.max.apply(Math, keyLengths) + 2;
11 function pp(obj) {
12 if (typeof obj === 'string' || typeof obj === 'number')
13 return obj;
14 if (typeof obj === 'object') {
15 return Object.keys(obj)
16 .map(k => k + ': ' + util.inspect(obj[k]))
17 .join(', ');
18 }
19 else {
20 return util.inspect(obj);
21 }
22 }
23 let logKeyValue = (key, value) => {
24 return `${chalk_1.default.blue(key)}:` + ' '.repeat(maxKeyLength - key.length - 1) + pp(value);
25 };
26 for (let key of keys || Object.keys(obj).sort()) {
27 let value = obj[key];
28 if (Array.isArray(value)) {
29 if (value.length > 0) {
30 output.push(logKeyValue(key, value[0]));
31 for (let e of value.slice(1)) {
32 output.push(' '.repeat(maxKeyLength) + pp(e));
33 }
34 }
35 }
36 else if (value !== null && value !== undefined) {
37 output.push(logKeyValue(key, value));
38 }
39 }
40 return output.join('\n');
41}
42exports.default = styledObject;