@revmax/agent-sdk
Version:
Official Node.js SDK for RevMax - billing, customer management, and usage tracking
100 lines • 2.67 kB
JavaScript
;
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