Add logUtils.table and logUtils.header

This commit is contained in:
Leonid Logvinov
2019-02-22 16:12:34 -08:00
parent e21dc5f026
commit 047de370d6
2 changed files with 27 additions and 1 deletions

View File

@@ -1,4 +1,13 @@
[ [
{
"version": "4.3.0",
"changes": [
{
"note": "Add `logUtils.table` and `logUtils.header`",
"pr": "TODO"
}
]
},
{ {
"version": "4.2.0", "version": "4.2.0",
"changes": [ "changes": [
@@ -477,4 +486,4 @@
], ],
"timestamp": 1516114800 "timestamp": 1516114800
} }
] ]

View File

@@ -1,12 +1,29 @@
import chalk from 'chalk'; import chalk from 'chalk';
import * as _ from 'lodash';
const DEFAULT_TERMINAL_WIDTH = 80;
const TERMINAL_WIDTH = process.stdout.columns || DEFAULT_TERMINAL_WIDTH;
export const logUtils = { export const logUtils = {
log(...args: any[]): void { log(...args: any[]): void {
console.log(...args); // tslint:disable-line:no-console console.log(...args); // tslint:disable-line:no-console
}, },
header(text: string, padStr: string = '='): void {
const padLength = TERMINAL_WIDTH - text.length;
const padLengthEnd = (padLength + 1) / 2;
const leftPadded = text.padStart(TERMINAL_WIDTH - padLengthEnd, padStr);
const padded = leftPadded.padEnd(TERMINAL_WIDTH, padStr);
console.log(padded); // tslint:disable-line:no-console
},
warn(...args: any[]): void { warn(...args: any[]): void {
console.warn(...args); // tslint:disable-line:no-console console.warn(...args); // tslint:disable-line:no-console
}, },
table(columnarData: { [rowName: string]: any }): void {
const formattedColumnarData = _.mapValues(columnarData, (columnOrColumns: any, _rowName: string) =>
_.isNumber(columnOrColumns) ? columnOrColumns.toLocaleString() : columnOrColumns,
);
console.table(formattedColumnarData); // tslint:disable-line:no-console
},
logWithTime(arg: string): void { logWithTime(arg: string): void {
logUtils.log(`[${chalk.gray(new Date().toLocaleTimeString())}] ${arg}`); logUtils.log(`[${chalk.gray(new Date().toLocaleTimeString())}] ${arg}`);
}, },