{"version":3,"file":"environment.cjs","names":["inspect"],"sources":["../../../src/platform/node/environment.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { diag } from '@opentelemetry/api';\nimport { inspect } from 'util';\n\n/**\n * Retrieves a number from an environment variable.\n * - Returns `undefined` if the environment variable is empty, unset, contains only whitespace, or is not a number.\n * - Returns a number in all other cases.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {number | undefined} - The number value or `undefined`.\n */\nexport function getNumberFromEnv(key: string): number | undefined {\n  const raw = process.env[key];\n  if (raw == null || raw.trim() === '') {\n    return undefined;\n  }\n\n  const value = Number(raw);\n  if (isNaN(value)) {\n    diag.warn(\n      `Unknown value ${inspect(raw)} for ${key}, expected a number, using defaults`\n    );\n    return undefined;\n  }\n\n  return value;\n}\n\n/**\n * Retrieves a string from an environment variable.\n * - Returns `undefined` if the environment variable is empty, unset, or contains only whitespace.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {string | undefined} - The string value or `undefined`.\n */\nexport function getStringFromEnv(key: string): string | undefined {\n  const raw = process.env[key];\n  if (raw == null || raw.trim() === '') {\n    return undefined;\n  }\n  return raw;\n}\n\n/**\n * Retrieves a boolean value from an environment variable.\n * - Trims leading and trailing whitespace and ignores casing.\n * - Returns `false` if the environment variable is empty, unset, or contains only whitespace.\n * - Returns `false` for strings that cannot be mapped to a boolean.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {boolean} - The boolean value or `false` if the environment variable is unset empty, unset, or contains only whitespace.\n */\nexport function getBooleanFromEnv(key: string): boolean {\n  const raw = process.env[key]?.trim().toLowerCase();\n  if (raw == null || raw === '') {\n    // NOTE: falling back to `false` instead of `undefined` as required by the specification.\n    // If you have a use-case that requires `undefined`, consider using `getStringFromEnv()` and applying the necessary\n    // normalizations in the consuming code.\n    return false;\n  }\n  if (raw === 'true') {\n    return true;\n  } else if (raw === 'false') {\n    return false;\n  } else {\n    diag.warn(\n      `Unknown value ${inspect(raw)} for ${key}, expected 'true' or 'false', falling back to 'false' (default)`\n    );\n    return false;\n  }\n}\n\n/**\n * Retrieves a list of strings from an environment variable.\n * - Uses ',' as the delimiter.\n * - Trims leading and trailing whitespace from each entry.\n * - Excludes empty entries.\n * - Returns `undefined` if the environment variable is empty or contains only whitespace.\n * - Returns an empty array if all entries are empty or whitespace.\n *\n * @param {string} key - The name of the environment variable to retrieve.\n * @returns {string[] | undefined} - The list of strings or `undefined`.\n */\nexport function getStringListFromEnv(key: string): string[] | undefined {\n  return getStringFromEnv(key)\n    ?.split(',')\n    .map(v => v.trim())\n    .filter(s => s !== '');\n}\n"],"mappings":";;;;;;;;;;;AAgBA,SAAgB,iBAAiB,KAAiC;CAChE,MAAM,MAAM,QAAQ,IAAI;CACxB,IAAI,OAAO,QAAQ,IAAI,KAAK,MAAM,IAChC;CAGF,MAAM,QAAQ,OAAO,GAAG;CACxB,IAAI,MAAM,KAAK,GAAG;EAChB,mBAAA,KAAK,KACH,kBAAA,GAAiBA,KAAAA,QAAAA,CAAQ,GAAG,EAAE,OAAO,IAAI,oCAC3C;EACA;CACF;CAEA,OAAO;AACT;;;;;;;;AASA,SAAgB,iBAAiB,KAAiC;CAChE,MAAM,MAAM,QAAQ,IAAI;CACxB,IAAI,OAAO,QAAQ,IAAI,KAAK,MAAM,IAChC;CAEF,OAAO;AACT;;;;;;;;;;AAWA,SAAgB,kBAAkB,KAAsB;CACtD,MAAM,MAAM,QAAQ,IAAI,IAAI,EAAE,KAAK,CAAC,CAAC,YAAY;CACjD,IAAI,OAAO,QAAQ,QAAQ,IAIzB,OAAO;CAET,IAAI,QAAQ,QACV,OAAO;MACF,IAAI,QAAQ,SACjB,OAAO;MACF;EACL,mBAAA,KAAK,KACH,kBAAA,GAAiBA,KAAAA,QAAAA,CAAQ,GAAG,EAAE,OAAO,IAAI,gEAC3C;EACA,OAAO;CACT;AACF;;;;;;;;;;;;AAaA,SAAgB,qBAAqB,KAAmC;CACtE,OAAO,iBAAiB,GAAG,CAAC,EACxB,MAAM,GAAG,CAAC,CACX,KAAI,MAAK,EAAE,KAAK,CAAC,CAAC,CAClB,QAAO,MAAK,MAAM,EAAE;AACzB"}