@opentelemetry/core
Version:
OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.
73 lines (72 loc) • 2.96 kB
JavaScript
let _opentelemetry_api = require("@opentelemetry/api");
let util = require("util");
//#region src/platform/node/environment.ts
/**
* Retrieves a number from an environment variable.
* - Returns `undefined` if the environment variable is empty, unset, contains only whitespace, or is not a number.
* - Returns a number in all other cases.
*
* @param {string} key - The name of the environment variable to retrieve.
* @returns {number | undefined} - The number value or `undefined`.
*/
function getNumberFromEnv(key) {
const raw = process.env[key];
if (raw == null || raw.trim() === "") return;
const value = Number(raw);
if (isNaN(value)) {
_opentelemetry_api.diag.warn(`Unknown value ${(0, util.inspect)(raw)} for ${key}, expected a number, using defaults`);
return;
}
return value;
}
/**
* Retrieves a string from an environment variable.
* - Returns `undefined` if the environment variable is empty, unset, or contains only whitespace.
*
* @param {string} key - The name of the environment variable to retrieve.
* @returns {string | undefined} - The string value or `undefined`.
*/
function getStringFromEnv(key) {
const raw = process.env[key];
if (raw == null || raw.trim() === "") return;
return raw;
}
/**
* Retrieves a boolean value from an environment variable.
* - Trims leading and trailing whitespace and ignores casing.
* - Returns `false` if the environment variable is empty, unset, or contains only whitespace.
* - Returns `false` for strings that cannot be mapped to a boolean.
*
* @param {string} key - The name of the environment variable to retrieve.
* @returns {boolean} - The boolean value or `false` if the environment variable is unset empty, unset, or contains only whitespace.
*/
function getBooleanFromEnv(key) {
const raw = process.env[key]?.trim().toLowerCase();
if (raw == null || raw === "") return false;
if (raw === "true") return true;
else if (raw === "false") return false;
else {
_opentelemetry_api.diag.warn(`Unknown value ${(0, util.inspect)(raw)} for ${key}, expected 'true' or 'false', falling back to 'false' (default)`);
return false;
}
}
/**
* Retrieves a list of strings from an environment variable.
* - Uses ',' as the delimiter.
* - Trims leading and trailing whitespace from each entry.
* - Excludes empty entries.
* - Returns `undefined` if the environment variable is empty or contains only whitespace.
* - Returns an empty array if all entries are empty or whitespace.
*
* @param {string} key - The name of the environment variable to retrieve.
* @returns {string[] | undefined} - The list of strings or `undefined`.
*/
function getStringListFromEnv(key) {
return getStringFromEnv(key)?.split(",").map((v) => v.trim()).filter((s) => s !== "");
}
//#endregion
exports.getBooleanFromEnv = getBooleanFromEnv;
exports.getNumberFromEnv = getNumberFromEnv;
exports.getStringFromEnv = getStringFromEnv;
exports.getStringListFromEnv = getStringListFromEnv;
//# sourceMappingURL=environment.cjs.map