UNPKG

shogun-core

Version:

SHOGUN SDK - Core library for Shogun SDK

106 lines (105 loc) 2.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.enableDebug = enableDebug; exports.disableDebug = disableDebug; exports.configureLogging = configureLogging; exports.log = log; exports.logError = logError; exports.logWarn = logWarn; exports.logDebug = logDebug; exports.logWithLevel = logWithLevel; // Default configuration let logConfig = { enabled: process.env.NODE_ENV === "development" || process.env.DEBUG === "true", level: "info", prefix: "[ShogunSDK]", }; /** * Indicates whether debug mode is enabled */ let debugMode = false; /** * Enables debug mode for logging */ function enableDebug() { debugMode = true; log("Debug mode enabled"); } /** * Disables debug mode for logging */ function disableDebug() { debugMode = false; } /** * Configure logging behavior * @param config - Logging configuration */ function configureLogging(config) { logConfig = { ...logConfig, ...config, }; } /** * Logs a message to the console with timestamp and optional data * @param message - The message to log * @param args - Additional arguments to log */ function log(message, ...args) { const timestamp = new Date().toISOString(); const formattedMessage = `[${timestamp}] ${message}`; console.log(formattedMessage, ...args); } /** * Logs an error message to the console * @param message - The error message * @param args - Additional arguments, including any Error objects */ function logError(message, ...args) { const timestamp = new Date().toISOString(); console.error(`[${timestamp}] ERROR: ${message}`, ...args); } /** * Logs a warning message to the console * @param message - The warning message * @param args - Additional arguments */ function logWarn(message, ...args) { const timestamp = new Date().toISOString(); console.warn(`[${timestamp}] WARNING: ${message}`, ...args); } /** * Logs a debug message to the console if debug mode is enabled * @param message - The debug message * @param args - Additional arguments */ function logDebug(message, ...args) { if (!debugMode) return; const timestamp = new Date().toISOString(); console.debug(`[${timestamp}] DEBUG: ${message}`, ...args); } /** * Generic logging function that accepts a log level * @param level - The log level * @param message - The message to log * @param args - Additional arguments */ function logWithLevel(level, message, ...args) { switch (level) { case "error": logError(message, ...args); break; case "warn": logWarn(message, ...args); break; case "debug": logDebug(message, ...args); break; case "info": default: log(message, ...args); break; } }