UNPKG

@revmax/agent-sdk

Version:

Official Node.js SDK for RevMax - billing, customer management, and usage tracking

100 lines 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Logger = void 0; /** * Default log levels priority */ const LOG_LEVEL_PRIORITY = { debug: 0, info: 1, warn: 2, error: 3, }; /** * Default log handler function */ const defaultLogHandler = (level, message, data) => { const timestamp = new Date().toISOString(); const logMessage = `[${timestamp}] [${level.toUpperCase()}] ${message}`; switch (level) { case 'error': console.error(logMessage, data ? data : ''); break; case 'warn': console.warn(logMessage, data ? data : ''); break; case 'info': console.info(logMessage, data ? data : ''); break; case 'debug': default: console.debug(logMessage, data ? data : ''); break; } }; /** * Logger class for SDK logging */ class Logger { /** * Create a new logger instance * @param options - Logger configuration options */ constructor(options) { this.enabled = options?.enabled ?? false; this.minLevel = options?.level ?? 'info'; this.handler = options?.handler ?? defaultLogHandler; } /** * Check if a log level should be output * @param level - Log level to check * @returns Whether the level should be logged */ shouldLog(level) { if (!this.enabled) return false; return LOG_LEVEL_PRIORITY[level] >= LOG_LEVEL_PRIORITY[this.minLevel]; } /** * Log a message at the debug level * @param message - Log message * @param data - Optional data to log */ debug(message, data) { if (this.shouldLog('debug')) { this.handler('debug', message, data); } } /** * Log a message at the info level * @param message - Log message * @param data - Optional data to log */ info(message, data) { if (this.shouldLog('info')) { this.handler('info', message, data); } } /** * Log a message at the warn level * @param message - Log message * @param data - Optional data to log */ warn(message, data) { if (this.shouldLog('warn')) { this.handler('warn', message, data); } } /** * Log a message at the error level * @param message - Log message * @param data - Optional data to log */ error(message, data) { if (this.shouldLog('error')) { this.handler('error', message, data); } } } exports.Logger = Logger; //# sourceMappingURL=logger.js.map