Add logUtils.table and logUtils.header
This commit is contained in:
		@@ -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
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -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}`);
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user