{"version":3,"file":"logLevelLogger.mjs","names":[],"sources":["../../../src/diag/internal/logLevelLogger.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { DiagLogFunction, DiagLogger } from '../types';\nimport { DiagLogLevel } from '../types';\n\nexport function createLogLevelDiagLogger(\n  maxLevel: DiagLogLevel,\n  logger: DiagLogger\n): DiagLogger {\n  if (maxLevel < DiagLogLevel.NONE) {\n    maxLevel = DiagLogLevel.NONE;\n  } else if (maxLevel > DiagLogLevel.ALL) {\n    maxLevel = DiagLogLevel.ALL;\n  }\n\n  // In case the logger is null or undefined\n  logger = logger || {};\n\n  function _filterFunc(\n    funcName: keyof DiagLogger,\n    theLevel: DiagLogLevel\n  ): DiagLogFunction {\n    const theFunc = logger[funcName];\n\n    if (typeof theFunc === 'function' && maxLevel >= theLevel) {\n      return theFunc.bind(logger);\n    }\n    return function () {};\n  }\n\n  return {\n    error: _filterFunc('error', DiagLogLevel.ERROR),\n    warn: _filterFunc('warn', DiagLogLevel.WARN),\n    info: _filterFunc('info', DiagLogLevel.INFO),\n    debug: _filterFunc('debug', DiagLogLevel.DEBUG),\n    verbose: _filterFunc('verbose', DiagLogLevel.VERBOSE),\n  };\n}\n"],"mappings":";;AAQA,SAAgB,yBACd,UACA,QACY;CACZ,IAAI,WAAA,GACF,WAAA;MACK,IAAI,WAAA,MACT,WAAA;CAIF,SAAS,UAAU,CAAC;CAEpB,SAAS,YACP,UACA,UACiB;EACjB,MAAM,UAAU,OAAO;EAEvB,IAAI,OAAO,YAAY,cAAc,YAAY,UAC/C,OAAO,QAAQ,KAAK,MAAM;EAE5B,OAAO,WAAY,CAAC;CACtB;CAEA,OAAO;EACL,OAAO,YAAY,SAAA,EAA2B;EAC9C,MAAM,YAAY,QAAA,EAAyB;EAC3C,MAAM,YAAY,QAAA,EAAyB;EAC3C,OAAO,YAAY,SAAA,EAA2B;EAC9C,SAAS,YAAY,WAAA,EAA+B;CACtD;AACF"}