// src/env-config.ts import { EyJsConfig } from '../../@eyjs-env' import { type LoggerConfig } from './logger-config.interface' export function getConfigFromEnv(eyConfig: EyJsConfig): Partial { const level = (eyConfig.get('LOG_LEVEL') as any) as LoggerConfig['level'] | undefined const enableDebug = eyConfig.get('LOG_DEBUG') === 'true' ? true : undefined const debugKeys = eyConfig.get('LOG_DEBUG_KEYS') ? eyConfig.get('LOG_DEBUG_KEYS')!.split(',').filter(Boolean) : undefined const serverUrl = eyConfig.get('LOG_SERVER_URL') || undefined const serviceName = eyConfig.get('SERVICE_NAME') || undefined const theme = (eyConfig.get('LOG_THEME') as any) || undefined const colorsEnabled = eyConfig.get('LOG_COLORS') === undefined ? undefined : eyConfig.get('LOG_COLORS') !== 'false' return { level, enableDebug, debugKeys, serverUrl, serviceName, colors: { theme, enabled: colorsEnabled, }, } } export function mergeConfig( envConfig: Partial, userConfig: LoggerConfig, ): LoggerConfig { return { level: userConfig.level ?? envConfig.level!, enableDebug: userConfig.enableDebug ?? (envConfig.enableDebug as boolean | undefined) ?? true, debugKeys: userConfig.debugKeys ?? envConfig.debugKeys ?? [], serverUrl: userConfig.serverUrl ?? envConfig.serverUrl, serviceName: userConfig.serviceName ?? envConfig.serviceName, colors: { ...(envConfig.colors || {}), ...(userConfig.colors || {}), }, } }