Repository URL to install this package:
|
Version:
7.0.4 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const exotic_1 = require("exotic");
function isDotEnvTrueBoolean(value) {
return value === 'true' || value === '1' || value === true;
}
function isDotEnvFalseBoolean(value) {
return value === 'false' || value === '0' || value === false;
}
/**
* Gets a string environment variable by the given name.
*
* @param name - The name of the environment variable.
* @param defaultVal - The default value to use.
* @returnString(process.env[name])
*/
function getEnvString(name, defaultVal) {
return String(process.env[name] || defaultVal);
}
exports.string = getEnvString;
/**
* Gets a number environment variable by the given name.
*
* @param name - The name of the environment variable.
* @param defaultVal - The default value to use.
* @return +process.env[name]
*/
function number(name, defaultVal) {
return exotic_1.toNumber(process.env[name] ? process.env[name] : defaultVal);
}
exports.number = number;
/**
* @param name - The name of the environment variable.
* @param defaultVal - The default value to use.
* @return !!process.env[name]
*/
function bool(name, defaultVal) {
return process.env[name]
? isDotEnvTrueBoolean(process.env[name]) || Boolean(process.env[name])
: defaultVal;
}
exports.boolean = bool;
exports.bool = bool;
/**
* @param {Name extends keyof ProcessEnv} name - process.env[name] || process.env[NAME]
* @param [defaultVal=undefined] fallback
* @return
*/
function env(name, defaultVal) {
if (defaultVal !== undefined) {
if (exotic_1.isBoolean(defaultVal)) {
return bool(name, defaultVal);
}
else if (exotic_1.isString(defaultVal)) {
return getEnvString(name, defaultVal);
}
else if (exotic_1.isNumber(defaultVal)) {
return number(name, defaultVal);
}
}
const value = exotic_1.hasOwnProp(process.env, name)
? process.env[name]
: process.env[name.toUpperCase()];
const final = isDotEnvTrueBoolean(value)
? true
: exotic_1.isNumber(value)
? exotic_1.toNumber(value)
: exotic_1.isString(value)
? String(value)
: defaultVal;
return final;
}
exports.env = env;
exports.get = env;
exports.getEnvVariable = env;
//# sourceMappingURL=getEnvVariable.js.map