nx/e2e/utils/log-utils.ts
2023-03-09 15:13:32 -05:00

48 lines
1.2 KiB
TypeScript

import * as chalk from 'chalk';
export const E2E_LOG_PREFIX = `${chalk.reset.inverse.bold.keyword('orange')(
' E2E '
)}`;
export function e2eConsoleLogger(message: string, body?: string) {
process.stdout.write('\n');
process.stdout.write(`${E2E_LOG_PREFIX} ${message}\n`);
if (body) {
process.stdout.write(`${body}\n`);
}
process.stdout.write('\n');
}
export function logInfo(title: string, body?: string) {
const message = `${chalk.reset.inverse.bold.white(
' INFO '
)} ${chalk.bold.white(title)}`;
return e2eConsoleLogger(message, body);
}
export function logError(title: string, body?: string) {
const message = `${chalk.reset.inverse.bold.red(' ERROR ')} ${chalk.bold.red(
title
)}`;
return e2eConsoleLogger(message, body);
}
export function logSuccess(title: string, body?: string) {
const message = `${chalk.reset.inverse.bold.green(
' SUCCESS '
)} ${chalk.bold.green(title)}`;
return e2eConsoleLogger(message, body);
}
/**
* Remove log colors for fail proof string search
* @param log
* @returns
*/
export function stripConsoleColors(log: string): string {
return log?.replace(
/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,
''
);
}