{"version":3,"file":"log.mjs","names":[],"sources":["../../../src/common/log/log.ts"],"sourcesContent":["import type { LoggerContextInterface, LoggerInterface, LogLevelAliasType } from './log-base'\nimport { getGlobalContext } from '../global'\nimport { LoggerConsoleHandler } from './log-console'\nimport { getGlobalConsole } from './log-console-original'\nimport { LoggerContext } from './log-context'\n\n// Global logger to guarantee all submodules use the same logger instance\n\nlet globalLogger: LoggerContextInterface\n\ndeclare global {\n  interface ZeedGlobalContext {\n    logger?: any // Should be LoggerContextInterface, but avoid compiler issues this way\n  }\n}\n\nfunction getLoggerContext(setup?: (context: LoggerContextInterface) => void) {\n  const logger = LoggerContext()\n  if (setup)\n    setup(logger)\n  else\n    logger.setHandlers([LoggerConsoleHandler()])\n  return logger\n}\n\n/** Get or create global logger instance */\nexport function getGlobalLogger(setup?: (context: LoggerContextInterface) => void): LoggerContextInterface {\n  if (globalLogger == null) {\n    try {\n      const gcontext = getGlobalContext()\n      if (gcontext != null) {\n        getGlobalConsole()\n\n        if (gcontext?.logger == null) {\n          globalLogger = getLoggerContext(setup)\n          gcontext.logger = globalLogger\n        }\n        else {\n          globalLogger = gcontext.logger\n        }\n      }\n      else {\n        globalLogger = getLoggerContext(setup)\n      }\n    }\n    catch (e) {\n      globalLogger = getLoggerContext(setup)\n    }\n  }\n  return globalLogger\n}\n\n/** Can be used for lazy usage e.g. inside of Zeed  */\nexport function getGlobalLoggerIfExists() {\n  if (globalLogger != null)\n    return globalLogger\n\n  try {\n    const gcontext = getGlobalContext()\n    if (gcontext?.logger != null)\n      return gcontext.logger\n  }\n  catch (e) { }\n}\n\nexport function DefaultLogger(name?: string, level?: LogLevelAliasType): LoggerInterface {\n  return getGlobalLogger()(name, level)\n}\n"],"mappings":";;;;;;AAQA,IAAI;AAQJ,SAAS,iBAAiB,OAAmD;CAC3E,MAAM,SAAS,eAAe;AAC9B,KAAI,MACF,OAAM,OAAO;KAEb,QAAO,YAAY,CAAC,sBAAsB,CAAC,CAAC;AAC9C,QAAO;;;AAIT,SAAgB,gBAAgB,OAA2E;AACzG,KAAI,gBAAgB,KAClB,KAAI;EACF,MAAM,WAAW,kBAAkB;AACnC,MAAI,YAAY,MAAM;AACpB,qBAAkB;AAElB,OAAI,UAAU,UAAU,MAAM;AAC5B,mBAAe,iBAAiB,MAAM;AACtC,aAAS,SAAS;SAGlB,gBAAe,SAAS;QAI1B,gBAAe,iBAAiB,MAAM;UAGnC,GAAG;AACR,iBAAe,iBAAiB,MAAM;;AAG1C,QAAO;;;AAIT,SAAgB,0BAA0B;AACxC,KAAI,gBAAgB,KAClB,QAAO;AAET,KAAI;EACF,MAAM,WAAW,kBAAkB;AACnC,MAAI,UAAU,UAAU,KACtB,QAAO,SAAS;UAEb,GAAG;;AAGZ,SAAgB,cAAc,MAAe,OAA4C;AACvF,QAAO,iBAAiB,CAAC,MAAM,MAAM"}