dotenv-eval
TypeScript icon, indicating that this package has built-in type declarations

0.2.0 • Public • Published

dotenv-eval

dotenv-eval

Dotenv-eval adds command evaluation on top of dotenv. If you find yourself needing to add the output of a command in one of your environment variables, then dotenv-eval is your tool.

Install

# Install locally (recommended)
npm install dotenv-eval --save

Or installing with yarn? yarn add dotenv-eval

Usage

Create a .env file in the root of your project:

GREETING="$(echo hello)"

As early as possible in your application, import and configure dotenv and then eval dotenv:

var dotenv = require('dotenv')
var dotenvEval = require('dotenv-eval')

var myEnv = dotenv.config()
dotenvEval.eval(myEnv)

console.log(process.env)

That's it. process.env now has the evaluated (command substitution) values you defined in your .env file.

Documentation

DotenvEval exposes one function:

  • eval

Eval

eval will evaluate (command substitution) your environment variables.

const dotenv = {
  parsed: {
    BASIC_SUBSTITUTE: '$(echo hello)'
  }
}

const obj = dotenvEval.eval(dotenv)

console.log(obj) // { BASIC_SUBSTITUTE: 'hello' }

Options

ignoreProcessEnv

Default: false

Turn off writing to process.env.

const dotenv = {
  ignoreProcessEnv: true,
  parsed: {
    SHOULD_NOT_EXIST: 'testing'
  }
}
const obj = dotenvEval.eval(dotenv).parsed

console.log(obj.SHOULD_NOT_EXIST) // testing
console.log(process.env.SHOULD_NOT_EXIST) // undefined

FAQ

What rules does the command substitution engine follow?

The substitution engine roughly has the following rules:

  • $(command) will substitute any command inside the $( )
  • \$(command) will escape the $(command) rather than substitute it

You can see a full list of examples here.

CHANGELOG

See CHANGELOG.md

Package Sidebar

Install

npm i dotenv-eval

Weekly Downloads

10

Version

0.2.0

License

BSD-2-Clause

Unpacked Size

10.3 kB

Total Files

7

Last publish

Collaborators

  • motdotla