70 lines
1.4 KiB
TypeScript
70 lines
1.4 KiB
TypeScript
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
|
|
*/
|
|
class Logger {
|
|
private static instance: Logger;
|
|
|
|
public static getInstance(): Logger {
|
|
if (!Logger.instance) {
|
|
Logger.instance = new Logger();
|
|
}
|
|
return Logger.instance;
|
|
}
|
|
|
|
public log(level: string, message: string): void {
|
|
switch (level) {
|
|
case 'error':
|
|
console.error(`${colors.red}✗ ${message}${colors.reset}`);
|
|
break;
|
|
case 'warn':
|
|
console.warn(`${colors.yellow}⚠ ${message}${colors.reset}`);
|
|
break;
|
|
case 'ok':
|
|
case 'success':
|
|
console.log(`${colors.green}✓ ${message}${colors.reset}`);
|
|
break;
|
|
case 'info':
|
|
default:
|
|
console.log(message);
|
|
break;
|
|
}
|
|
}
|
|
|
|
public error(message: string): void {
|
|
this.log('error', message);
|
|
}
|
|
|
|
public warn(message: string): void {
|
|
this.log('warn', message);
|
|
}
|
|
|
|
public info(message: string): void {
|
|
this.log('info', message);
|
|
}
|
|
|
|
public success(message: string): void {
|
|
this.log('success', message);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Logger instance for MOXYTOOL
|
|
*/
|
|
export const logger = Logger.getInstance();
|