getenv2

Retrieve and validate environment variables

Usage no npm install needed!

<script type="module">
  import getenv2 from 'https://cdn.skypack.dev/getenv2';
</script>

README

getenv2

Build Status

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 }