UNPKG

@opentelemetry/core

Version:

OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.

1 lines • 4.3 kB
{"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"}