{"version":3,"file":"registry.cjs","sources":["../../../../src/services/logging/registry.ts"],"sourcesContent":["import { createMonitoringLogger, logWarning, type MonitoringLogger } from '../../utils/logging';\n\nimport { Loggers, type LoggerDefaults, type LoggerSource } from './loggers';\n\nlet loggersRegistry: Partial<Record<LoggerSource, MonitoringLogger>> = {};\n\nexport function initializeLoggersRegistry() {\n  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n  const entries = Object.entries(Loggers) as Array<[LoggerSource, LoggerDefaults]>;\n  for (const [source, defaults] of entries) {\n    addLogger(source, defaults);\n  }\n}\n\nexport function addLogger(source: LoggerSource, defaults?: LoggerDefaults): void {\n  if (loggersRegistry[source]) {\n    console.warn(`LoggerRegistry: a logger with the source:${source} already exists, keeping existing entry.`);\n    return;\n  }\n\n  loggersRegistry[source] = createMonitoringLogger(source, defaults?.context, defaults?.logToConsole);\n}\n\nexport function getLogger(source: LoggerSource): MonitoringLogger {\n  if (!loggersRegistry[source]) {\n    const message = `LoggerRegistry: no logger '${source}' exists, are you calling getLogger before initializeLoggersRegistry function was called?`;\n\n    // avoid having to mock logger in tests because of the warning message\n    if (process.env.NODE_ENV !== 'test') {\n      console.warn(message);\n      logWarning(message, { source: 'grafana/runtime.logging.registry', logger: source });\n    }\n\n    if (process.env.NODE_ENV === 'development') {\n      throw new Error(message);\n    }\n\n    return createMonitoringLogger(source);\n  }\n\n  return loggersRegistry[source];\n}\n\nexport function setLogger(source: LoggerSource, logger: MonitoringLogger): void {\n  if (process.env.NODE_ENV !== 'test') {\n    throw new Error('LoggerRegistry: setLogger function can only be called from tests.');\n  }\n\n  loggersRegistry[source] = logger;\n}\n\nexport function clearLoggerRegistry() {\n  if (process.env.NODE_ENV !== 'test') {\n    throw new Error('LoggerRegistry: clearLoggerRegistry function can only be called from tests.');\n  }\n\n  loggersRegistry = {};\n}\n"],"names":["Loggers","createMonitoringLogger","logWarning"],"mappings":";;;;;;;;AAIA,IAAI,kBAAmE,EAAC;AAEjE,SAAS,yBAAA,GAA4B;AAE1C,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,OAAA,CAAQA,eAAO,CAAA;AACtC,EAAA,KAAA,MAAW,CAAC,MAAA,EAAQ,QAAQ,CAAA,IAAK,OAAA,EAAS;AACxC,IAAA,SAAA,CAAU,QAAQ,QAAQ,CAAA;AAAA,EAC5B;AACF;AAEO,SAAS,SAAA,CAAU,QAAsB,QAAA,EAAiC;AAC/E,EAAA,IAAI,eAAA,CAAgB,MAAM,CAAA,EAAG;AAC3B,IAAA,OAAA,CAAQ,IAAA,CAAK,CAAA,yCAAA,EAA4C,MAAM,CAAA,wCAAA,CAA0C,CAAA;AACzG,IAAA;AAAA,EACF;AAEA,EAAA,eAAA,CAAgB,MAAM,CAAA,GAAIC,8BAAA,CAAuB,QAAQ,QAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,QAAA,CAAU,OAAA,EAAS,qCAAU,YAAY,CAAA;AACpG;AAEO,SAAS,UAAU,MAAA,EAAwC;AAChE,EAAA,IAAI,CAAC,eAAA,CAAgB,MAAM,CAAA,EAAG;AAC5B,IAAA,MAAM,OAAA,GAAU,8BAA8B,MAAM,CAAA,yFAAA,CAAA;AAGpD,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,MAAA,EAAQ;AACnC,MAAA,OAAA,CAAQ,KAAK,OAAO,CAAA;AACpB,MAAAC,kBAAA,CAAW,SAAS,EAAE,MAAA,EAAQ,kCAAA,EAAoC,MAAA,EAAQ,QAAQ,CAAA;AAAA,IACpF;AAEA,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,aAAA,EAAe;AAC1C,MAAA,MAAM,IAAI,MAAM,OAAO,CAAA;AAAA,IACzB;AAEA,IAAA,OAAOD,+BAAuB,MAAM,CAAA;AAAA,EACtC;AAEA,EAAA,OAAO,gBAAgB,MAAM,CAAA;AAC/B;AAEO,SAAS,SAAA,CAAU,QAAsB,MAAA,EAAgC;AAC9E,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,MAAA,EAAQ;AACnC,IAAA,MAAM,IAAI,MAAM,mEAAmE,CAAA;AAAA,EACrF;AAEA,EAAA,eAAA,CAAgB,MAAM,CAAA,GAAI,MAAA;AAC5B;AAEO,SAAS,mBAAA,GAAsB;AACpC,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,MAAA,EAAQ;AACnC,IAAA,MAAM,IAAI,MAAM,6EAA6E,CAAA;AAAA,EAC/F;AAEA,EAAA,eAAA,GAAkB,EAAC;AACrB;;;;;;;;"}