UNPKG

task-master-sync

Version:

A bidirectional synchronization tool between TaskMaster AI and Monday.com with automatic item recreation

78 lines (70 loc) 1.67 kB
/** * Logger utility for TaskMaster-Monday Sync * Simple wrapper around console methods with colored output */ const chalk = require('chalk'); /** * Log levels * @enum {string} */ const LogLevel = { INFO: 'info', SUCCESS: 'success', WARN: 'warn', ERROR: 'error', DEBUG: 'debug' }; /** * Simple logger with colored output */ class Logger { /** * Log an informational message * @param {string} message - The message to log */ info(message) { console.log(chalk.blue(`[INFO] ${message}`)); } /** * Log a success message * @param {string} message - The message to log */ success(message) { console.log(chalk.green(`[SUCCESS] ${message}`)); } /** * Log a warning message * @param {string} message - The message to log */ warn(message) { console.log(chalk.yellow(`[WARNING] ${message}`)); } /** * Log an error message * @param {string} message - The message to log * @param {Error} [error] - Optional error object */ error(message, error) { console.error(chalk.red(`[ERROR] ${message}`)); if (error) { console.error(chalk.red(error.stack || error.message || error)); } } /** * Log a debug message (only in development) * @param {string} message - The message to log * @param {any} [data] - Optional data to log */ debug(message, data) { if (process.env.NODE_ENV !== 'production') { console.log(chalk.gray(`[DEBUG] ${message}`)); if (data !== undefined) { console.log(chalk.gray(typeof data === 'object' ? JSON.stringify(data, null, 2) : data)); } } } } module.exports = { Logger: new Logger(), LogLevel };