kobp
Version:
Koa Boilerplate with MikroORM
31 lines • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.env = void 0;
const lodash_1 = require("lodash");
function _env(envKey, defaultValue, src = process.env) {
const val = src[`${envKey}`];
if ((0, lodash_1.isNil)(val)) {
if (defaultValue === 'requiredString' || defaultValue === 'requiredNumber' || defaultValue === 'requiredBoolean') {
throw new Error(`ENVIRONMENT "${envKey}" (${envKey.length}) is required but not yet defined.`);
}
return defaultValue;
}
if (defaultValue === 'requiredNumber' || typeof defaultValue === 'number') {
const numberVal = +val;
if (isNaN(numberVal)) {
throw new Error(`ENVIRONMENT "${envKey}" (${envKey.length}) should be numeric value but provided as "${val}" (Not a Number).`);
}
return numberVal;
}
if (defaultValue === 'requiredBoolean' || typeof defaultValue === 'boolean') {
const booleanVal = /^(yes|true|1)$/i.test(`${val}`);
return booleanVal;
}
return val;
}
exports.env = {
s: (envKey, defaultValue) => _env(envKey, typeof defaultValue === 'undefined' ? 'requiredString' : defaultValue),
b: (envKey, defaultValue) => _env(envKey, typeof defaultValue === 'undefined' ? 'requiredBoolean' : defaultValue),
n: (envKey, defaultValue) => _env(envKey, typeof defaultValue === 'undefined' ? 'requiredNumber' : defaultValue),
};
//# sourceMappingURL=env.js.map