getenv2
v3.0.0
Published
Retrieve and validate environment variables
Downloads
149
Maintainers
Readme
getenv2
Node environment helper with fallbacks
Install with:
npm install getenv2
Example
const Getenv = require('getenv2');
// get the host url using localhost as the fallback
const dbHost = Getenv('DB_HOST', 'localhost');
// get the db password with no fallback for production environments
const dbPassword = Getenv('DB_HOST', {'dev': 'localpassword'});
API
Getenv.setObjectFallback
Sets the key to be used as a fallback when sending a dictionary
default = process.env.ENVIRONMENT || 'dev'
Getenv.setObjectFallback('staging');
Getenv('DB_PASSWORD', { dev: 'developmentpass' });
// -> 'developmentpass'
Validation
Getenv accepts joi objects to validate and parse environment variables.
const Joi = require('joi');
Getenv('CONCURRENCY', Joi.number().max(5).default(1));
Getenv('HOST', Joi.string().uri());
Getenv('TODAY', Joi.date().iso());
For more information on the datatypes Joi supports see https://github.com/hapijs/joi/blob/v14.0.6/API.md
Array
Getenv has a custom joi instance available in order to support arrays and objects loaded from the environment variables.
const Getenv = require('getenv2');
// if ARRAY is set to 1,2
Getenv('ARRAY', Getenv.joi.envarray());
// -> ['1', '2']
Getenv('ARRAY', Getenv.joi.envarray().number().length(5));
// -> [1, 2]
Object
Runs JSON.parse on the variable
const Getenv = require('getenv2');
// if OBJECT is set to { 'test': true }
Getenv('OBJECT', Getenv.joi.envobject());
// -> { test: true }