Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/dotenv / dist / getEnvVariable.js
Size: Mime:
"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