feat(cli): Improve CLI output and logging with colored header, grouped script listings, and ANSI-styled logger

This commit is contained in:
2025-10-28 19:03:13 +00:00
parent d832343b38
commit 45ac9af405
4 changed files with 58 additions and 15 deletions

View File

@@ -1,5 +1,19 @@
import * as plugins from './moxytool.plugins.ts';
// ANSI color codes
const colors = {
reset: '\x1b[0m',
bright: '\x1b[1m',
dim: '\x1b[2m',
red: '\x1b[31m',
green: '\x1b[32m',
yellow: '\x1b[33m',
blue: '\x1b[34m',
magenta: '\x1b[35m',
cyan: '\x1b[36m',
white: '\x1b[37m',
};
/**
* A simple logger class for MOXYTOOL
*/
@@ -14,22 +28,20 @@ class Logger {
}
public log(level: string, message: string): void {
const timestamp = new Date().toISOString();
switch (level) {
case 'error':
console.error(`[${timestamp}] [ERROR] ${message}`);
console.error(`${colors.red}${message}${colors.reset}`);
break;
case 'warn':
console.warn(`[${timestamp}] [WARN] ${message}`);
console.warn(`${colors.yellow}${message}${colors.reset}`);
break;
case 'ok':
case 'success':
console.log(`[${timestamp}] [OK] ${message}`);
console.log(`${colors.green}${message}${colors.reset}`);
break;
case 'info':
default:
console.log(`[${timestamp}] [INFO] ${message}`);
console.log(message);
break;
}
}