{"version":3,"file":"ConsoleLogger.mjs","names":[],"sources":["../../src/logger/ConsoleLogger.ts"],"sourcesContent":["import { BaseLogger } from './BaseLogger'\nimport { LogLevel } from './Logger'\nimport { replaceError } from './replaceError'\n\n// biome-ignore lint/suspicious/noExplicitAny: no explanation\ntype LogData = Record<string, any>\n\nexport class ConsoleLogger extends BaseLogger {\n  // Map our log levels to console levels\n  private consoleLogMap = {\n    [LogLevel.Test]: 'log',\n    [LogLevel.Trace]: 'log',\n    [LogLevel.Debug]: 'debug',\n    [LogLevel.Info]: 'info',\n    [LogLevel.Warn]: 'warn',\n    [LogLevel.Error]: 'error',\n    [LogLevel.Fatal]: 'error',\n  } as const\n\n  private log(level: Exclude<LogLevel, LogLevel.Off>, message: string, data?: LogData): void {\n    // Get console method from mapping\n    const consoleLevel = this.consoleLogMap[level]\n\n    // Get logger prefix from log level names in enum\n    const prefix = LogLevel[level].toUpperCase()\n\n    // Return early if logging is not enabled for this level\n    if (!this.isEnabled(level)) return\n\n    // Log, with or without data\n    if (data) {\n      // biome-ignore lint/suspicious/noConsole: ConsoleLogger\n      console[consoleLevel](`${prefix}: ${message}`, JSON.stringify(data, replaceError, 2))\n    } else {\n      // biome-ignore lint/suspicious/noConsole: ConsoleLogger\n      console[consoleLevel](`${prefix}: ${message}`)\n    }\n  }\n\n  public test(message: string, data?: LogData): void {\n    this.log(LogLevel.Test, message, data)\n  }\n\n  public trace(message: string, data?: LogData): void {\n    this.log(LogLevel.Trace, message, data)\n  }\n\n  public debug(message: string, data?: LogData): void {\n    this.log(LogLevel.Debug, message, data)\n  }\n\n  public info(message: string, data?: LogData): void {\n    this.log(LogLevel.Info, message, data)\n  }\n\n  public warn(message: string, data?: LogData): void {\n    this.log(LogLevel.Warn, message, data)\n  }\n\n  public error(message: string, data?: LogData): void {\n    this.log(LogLevel.Error, message, data)\n  }\n\n  public fatal(message: string, data?: LogData): void {\n    this.log(LogLevel.Fatal, message, data)\n  }\n}\n"],"mappings":";;;;AAOA,IAAa,gBAAb,cAAmC,WAAW;;;EAE5C,KAAQ,gBAAgB;IACL,IAAA;IACC,IAAA;IACA,IAAA;IACD,IAAA;IACA,IAAA;IACC,IAAA;IACA,IAAA;EACpB;;CAEA,IAAY,OAAwC,SAAiB,MAAsB;EAEzF,MAAM,eAAe,KAAK,cAAc;EAGxC,MAAM,SAAS,SAAS,MAAM,CAAC,YAAY;EAG3C,IAAI,CAAC,KAAK,UAAU,KAAK,GAAG;EAG5B,IAAI,MAEF,QAAQ,aAAa,CAAC,GAAG,OAAO,IAAI,WAAW,KAAK,UAAU,MAAM,cAAc,CAAC,CAAC;OAGpF,QAAQ,aAAa,CAAC,GAAG,OAAO,IAAI,SAAS;CAEjD;CAEA,KAAY,SAAiB,MAAsB;EACjD,KAAK,IAAA,GAAmB,SAAS,IAAI;CACvC;CAEA,MAAa,SAAiB,MAAsB;EAClD,KAAK,IAAA,GAAoB,SAAS,IAAI;CACxC;CAEA,MAAa,SAAiB,MAAsB;EAClD,KAAK,IAAA,GAAoB,SAAS,IAAI;CACxC;CAEA,KAAY,SAAiB,MAAsB;EACjD,KAAK,IAAA,GAAmB,SAAS,IAAI;CACvC;CAEA,KAAY,SAAiB,MAAsB;EACjD,KAAK,IAAA,GAAmB,SAAS,IAAI;CACvC;CAEA,MAAa,SAAiB,MAAsB;EAClD,KAAK,IAAA,GAAoB,SAAS,IAAI;CACxC;CAEA,MAAa,SAAiB,MAAsB;EAClD,KAAK,IAAA,GAAoB,SAAS,IAAI;CACxC;AACF"}