{"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;;;OAEpC,gBAAgB;IACrB,SAAS,OAAO;IAChB,SAAS,QAAQ;IACjB,SAAS,QAAQ;IACjB,SAAS,OAAO;IAChB,SAAS,OAAO;IAChB,SAAS,QAAQ;IACjB,SAAS,QAAQ;GACnB;;CAED,AAAQ,IAAI,OAAwC,SAAiB,MAAsB;EAEzF,MAAM,eAAe,KAAK,cAAc;EAGxC,MAAM,SAAS,SAAS,OAAO,aAAa;AAG5C,MAAI,CAAC,KAAK,UAAU,MAAM,CAAE;AAG5B,MAAI,KAEF,SAAQ,cAAc,GAAG,OAAO,IAAI,WAAW,KAAK,UAAU,MAAM,cAAc,EAAE,CAAC;MAGrF,SAAQ,cAAc,GAAG,OAAO,IAAI,UAAU;;CAIlD,AAAO,KAAK,SAAiB,MAAsB;AACjD,OAAK,IAAI,SAAS,MAAM,SAAS,KAAK;;CAGxC,AAAO,MAAM,SAAiB,MAAsB;AAClD,OAAK,IAAI,SAAS,OAAO,SAAS,KAAK;;CAGzC,AAAO,MAAM,SAAiB,MAAsB;AAClD,OAAK,IAAI,SAAS,OAAO,SAAS,KAAK;;CAGzC,AAAO,KAAK,SAAiB,MAAsB;AACjD,OAAK,IAAI,SAAS,MAAM,SAAS,KAAK;;CAGxC,AAAO,KAAK,SAAiB,MAAsB;AACjD,OAAK,IAAI,SAAS,MAAM,SAAS,KAAK;;CAGxC,AAAO,MAAM,SAAiB,MAAsB;AAClD,OAAK,IAAI,SAAS,OAAO,SAAS,KAAK;;CAGzC,AAAO,MAAM,SAAiB,MAAsB;AAClD,OAAK,IAAI,SAAS,OAAO,SAAS,KAAK"}