Skip to content
This repository was archived by the owner on Apr 20, 2018. It is now read-only.
unfoldPublic archive

About

Ensures your config variables are accessible at process.env[variable]

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Config Variables CircleCI

Ensures your config variables are accessible via process.env[variable]. Leverages app.json-schema for requirements, descriptions and default values, and a .env file for overwrites in development.

Setup

Install config-variables from NPM

npm install --save config-variables

Either require the package in your entry file

// src/index.js
require('config-variables')

or use node's preload option in your package.json scripts

"scripts": {
  "start": "node -r config-variables src/index.js"
}

If you have an existing .env or app.json file in your projects, your config variables should now be accessible within your code via process.env[variable].

Setting defaults and requirements

If you depend on variables for your app to run, set the requirement in app.json at your project root.

{
  "name": "My Project",
  "env": {
    "API_ENDPOINT": "http://prod.api.io/endpoint",
    "AUTH_KEY": {
      "required": true,
      "description": "Authentication key for OAuth"
    }
  }
}

AUTH_KEY is set as required, so if you run your application it will abort with a message and variable description if you supply one. Handy if multiple people are working on a project.

If you deploy your app to Heroku, you can overwrite these variables in your Heroku dashboard/console.

Development variables

.env is perfect for the variables that you don't want in your .git commits or for development.

PORT=5050
API_ENDPOINT=http://dev.api.io/endpoint
AUTH_KEY=okp3vopq23s2sd3es4j42k

Custom paths

If you have a multiple configs in a monorepo or don't want to store your configs at the root, you can set custom paths with config-variables/lib/setup.

const setup = require('config-variables/setup')
const development = process.env.NODE_ENV !== 'production'

setup({
  appJsonPath: 'src/server/app.json',
  dotEnvPath: development ? '.development' : '.production',
})

About

Ensures your config variables are accessible at process.env[variable]

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages