1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", { value: true });
|
4 | const tslib_1 = require("tslib");
|
5 | const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
6 | const util = tslib_1.__importStar(require("util"));
|
7 | function 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 | }
|
42 | exports.default = styledObject;
|