UNPKG

kobp

Version:
28 lines 1.35 kB
import { isNil } from 'lodash'; function _env(envKey, defaultValue, src = process.env) { const val = src[`${envKey}`]; if (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; } export const 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