From 6aacb9c2e4d326f178da9a644231cfed7a7468dc Mon Sep 17 00:00:00 2001 From: Innei Date: Mon, 14 Feb 2022 15:42:27 +0800 Subject: [PATCH] feat: fancy report for normal term but hack in vpty --- src/global/consola.global.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/global/consola.global.ts b/src/global/consola.global.ts index 0c040447..247431ee 100644 --- a/src/global/consola.global.ts +++ b/src/global/consola.global.ts @@ -14,16 +14,19 @@ export const getTodayLogFilePath = () => resolve(LOG_DIR, 'stdout_' + getShortDate(new Date()) + '.log') class Reporter extends FancyReporter { + isInVirtualTerminal = typeof process.stdout.columns === 'undefined' // HACK: if got `undefined` that means in PM2 pty protected formatDate(date: Date): string { - return '' + return this.isInVirtualTerminal ? '' : super.formatDate(date) } protected formatLogObj(): string { - return ( - chalk.gray(getShortTime(new Date())) + - ' ' + - super.formatLogObj.apply(this, arguments).replace(/^\n/, '') - ).trim() + return this.isInVirtualTerminal + ? ( + chalk.gray(getShortTime(new Date())) + + ' ' + + super.formatLogObj.apply(this, arguments).replace(/^\n/, '') + ).trimEnd() + : super.formatLogObj.apply(this, arguments) } } export const consola = consola_.create({ @@ -76,6 +79,7 @@ export function registerStdLogger() { } consola.wrapAll() + // HACK: forhidden pm2 to override this method Object.defineProperty(process.stdout, 'write', { value: process.stdout.write, writable: false, @@ -87,3 +91,5 @@ export function registerStdLogger() { configurable: false, }) } + +console.log('cols', process.stdout.columns)