UNPKG

wisdom-sdk

Version:

Core business logic and data access layer for prediction markets

1 lines 7.63 kB
{"version":3,"sources":["../src/logger.ts"],"names":[],"mappings":"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","file":"logger.cjs","sourcesContent":["// Simple logger interface\nexport interface Logger {\n info: (obj: Record<string, unknown>, msg?: string) => void;\n error: (obj: Record<string, unknown>, msg?: string) => void;\n warn: (obj: Record<string, unknown>, msg?: string) => void;\n debug: (obj: Record<string, unknown>, msg?: string) => void;\n child: (bindings: object) => Logger;\n}\n\n/**\n * Centralized logger configuration\n * \n * This provides consistent logging across all modules with proper\n * context and standardized error handling.\n */\n\n// Simple console-based logger factory - no external dependencies\nconst createLogger = (): Logger => {\n // Get log level from environment or default to 'info'\n const logLevel = process.env.LOG_LEVEL || 'info';\n \n // Map log levels to numeric values for comparison\n const logLevels = {\n debug: 0,\n info: 1,\n warn: 2,\n error: 3\n } as const;\n \n // Current log level\n const currentLevelValue = logLevel in logLevels \n ? logLevels[logLevel as keyof typeof logLevels] \n : logLevels.info;\n \n // Format a log message with timestamp and metadata\n const formatLog = (level: string, obj: Record<string, unknown>, msg?: string): string => {\n const timestamp = new Date().toISOString();\n const service = 'wisdom-sdk';\n const objStr = JSON.stringify(obj);\n return `[${timestamp}] ${level.toUpperCase()} [${service}] ${msg || ''} ${objStr}`;\n };\n \n // Simple implementation using console methods\n return {\n debug: (obj: Record<string, unknown>, msg?: string) => {\n if (currentLevelValue <= 0) { // debug level\n console.debug(formatLog('debug', obj, msg));\n }\n },\n info: (obj: Record<string, unknown>, msg?: string) => {\n if (currentLevelValue <= 1) { // info level\n console.info(formatLog('info', obj, msg));\n }\n },\n warn: (obj: Record<string, unknown>, msg?: string) => {\n if (currentLevelValue <= 2) { // warn level\n console.warn(formatLog('warn', obj, msg));\n }\n },\n error: (obj: Record<string, unknown>, msg?: string) => {\n if (currentLevelValue <= 3) { // error level\n console.error(formatLog('error', obj, msg));\n }\n },\n child: (bindings: object) => {\n // For child loggers, we merge the bindings with the log objects\n const childLogger = createLogger();\n \n // Override methods to include the bindings\n return {\n debug: (obj: Record<string, unknown>, msg?: string) => \n childLogger.debug({ ...obj, ...bindings }, msg),\n info: (obj: Record<string, unknown>, msg?: string) => \n childLogger.info({ ...obj, ...bindings }, msg),\n warn: (obj: Record<string, unknown>, msg?: string) => \n childLogger.warn({ ...obj, ...bindings }, msg),\n error: (obj: Record<string, unknown>, msg?: string) => \n childLogger.error({ ...obj, ...bindings }, msg),\n child: (nestedBindings: object) => \n childLogger.child({ ...bindings, ...nestedBindings })\n };\n }\n };\n};\n\n// Default logger instance\nexport const logger = createLogger();\n\n// Create a child logger with context\nexport function getContextLogger(context: string): Logger {\n return logger.child({ context });\n}\n\n// Error handling utilities\nexport class AppError extends Error {\n public readonly context: string;\n public readonly code: string;\n public readonly originalError?: Error;\n public readonly data?: Record<string, unknown>;\n\n constructor({\n message,\n context = 'general',\n code = 'INTERNAL_ERROR',\n originalError,\n data,\n }: {\n message: string;\n context?: string;\n code?: string;\n originalError?: Error;\n data?: Record<string, unknown>;\n }) {\n super(message);\n this.name = 'AppError';\n this.context = context;\n this.code = code;\n this.originalError = originalError;\n this.data = data;\n // Preserve stack trace\n Error.captureStackTrace(this, this.constructor);\n }\n\n // Logs this error with appropriate context and returns it\n log() {\n const contextLogger = getContextLogger(this.context);\n const logObj = {\n code: this.code,\n error: this.message,\n ...(this.originalError && { originalError: this.originalError.message }),\n ...(this.data && { data: this.data }),\n };\n\n contextLogger.error(logObj, this.message);\n return this;\n }\n}\n\nexport default logger;"]}