Socket
Socket
Sign inDemoInstall

democracyos-config

Package Overview
Dependencies
20
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    democracyos-config

Node configuration files loader. Overrideable by environment variables. Very opinionated.


Version published
Weekly downloads
544
decreased by-32.34%
Maintainers
1
Install size
239 kB
Created
Weekly downloads
 

Readme

Source

Config

Build Status Greenkeeper badge

Configuration manager for node apps. Keep all your default settings on a json file, and override them per environment, using another file or environment variables.

Install

npm i democracyos-config -S

Usage

1- Create defaults.json file. It will define the schema of the config, including default values and types it should have:

/config/defaults.json

{
  "port": 3000,
  "title": "My awesome app Defaults"
}

2- Environment specific overrides are optional, using {NODE_ENV}.json or development.json as default:

/config/development.json

{
  "title": "My awesome app on Development"
}

3- Only commit default values! You wouldn't want to commit any keys, etc.

/config/.gitignore

*.json
!defaults.json

4- Load your config, specify the path to where all the config files are located.

/config/index.js

module.exports = require('democracyos-config')({
  path: __dirname
})

5- Use it:

And, in your /server.js, or wherever:

var config = require('./config')

console.log(config.title) // My awesome app on Development

Environment Variables

You can also define values using environment variables, this is the recommended approach for production.

  • Var names should be CONSTANT_CASE.
    • e.g.: mongoUrl => MONGO_URL
    • Scoped variables e.g.: user.password => USER_PASSWORD
  • Arrayss should be strings separated by commas.
    • e.g.: "staff": ["mail@eg.com", "a@c.m"] => STAFF="mail@eg.com,a@c.m"
  • Booleans should be true or false as strings.
    • e.g.: "rssEnabled": false => RSS_ENABLED="false"
  • Objectss should be a JSON string.
    • e.g.: "connectionData": {} => CONNECTION_DATA='{"ip": "127.0.0.1", "port": 45333}'
  • For more info, Types are casted using /lib/cast-string.js

Tests

npm run test

License

FAQs

Last updated on 10 Apr 2017

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc