handy-config

1.2.0 • Public • Published

Handy Config

A lightweight module that takes care of handling configs / credentials based on node environment

Usage

Require the module with:

var cfg = require('handy-config')();   //in a single file
global.cfg = require('handy-config')();  //globally
if (cfg.error) throw cfg.error;

The module will load only the data specific to your NODE_ENV. This is how your .cfg file should look like:

{
  "all": {
    "session_secret": "meatballs",
    "port": 3000
  },
  "production": {
    "port": 80,
    "mongo_url": "mongodb://localhost/prod",
    "mongo_pass": "spaghetti"
  },
  "development": {
    "port": 8080,
    "mongo_url": "mongodb://localhost/dev"
  }
}

Fields under all apply regardless of NODE_ENV, but will get overridden by environment specific fields.

In this example the port field doesn't apply (given NODE_ENV='development'), because it was already defined.

Given that you set NODE_ENV to production, invoking the module returns the following:

cfg = {
  port: 80,
  mongo_url: "mongodb://localhost/prod"
  mongo_pass: "spaghetti",
  session_secret: "meatballs"
}
// FYI the module uses the spread operator to handle this
// cfg = {...config.all, ...config.production}

You only have to invoke the module once.

// app.js
var cfg = require('handy-config')(); //configures the modules and returns the config
// This step cannot be omitted and needs to be done before all other imports

// mongo.js
var cfg = require('handy-config'); //returns the config

Config

You can override the default file name and encoding. Below are the defaults:

var cfg = require('handy-config')({
  path: '.cfg',
  encoding: 'utf8'
});

Set your NODE_ENV easily

You can add this to your package.json

"scripts": {
  "dev": "set NODE_ENV=development&& node app",
  "prod": "set NODE_ENV=production&& node app"
}

And then just run it in your command line

npm dev

This will automatically set your NODE_ENV before runtime.

Install

Run this command in your command line:

npm i handy-config

And that's it!

Package Sidebar

Install

npm i handy-config

Weekly Downloads

0

Version

1.2.0

License

MIT

Unpacked Size

4.61 kB

Total Files

4

Last publish

Collaborators

  • judehunter