@jcoreio/require-env

get value of an environment variable; throw if undefined or empty string

Usage no npm install needed!

<script type="module">
  import jcoreioRequireEnv from 'https://cdn.skypack.dev/@jcoreio/require-env';
</script>

README

@jcoreio/require-env

CircleCI Coverage Status semantic-release Commitizen friendly npm version

A simple function that returns the value of an environment variable, but throws if it's not a non-empty string. Logs the entire environment to console.error to aid debugging. Flow type defs included.

Usage

npm install --save @jcoreio/require-env
var requireEnv = require('require-env')

var FOO = requireEnv('FOO')
// now you can be sure that FOO is a non-empty string, and Flow will trust that it is too.

By default it looks in process.env, but you can override this by passing the environment hash as the second argument:

var environment = {...process.env, ...require('./defaultEnv.js')}
var FOO = requireEnv('FOO', environment)

See also

  • defaultenv - fantastic CLI/Node API for loading default environment variable values

Error messages

In the past Errors thrown had all environment variables in their messages. I've since realized this was a huge security risk when error messages are sent from server to client. Now the message and environment variables are printed to console.error. You can customize this by monkeypatching the require('@jcoreio/require-env').logError function.