env-configuration

0.1.3 • Public • Published

Node.js env-configuration

NodeJS configuration set/get and reader for package.json data Configuration management tool feeding values from environment variables, files and code.

Version

0.1.3

Build Status

Post all your comments and bug reports to @martinswiderski

Installation

To include code in your project and add it permanently as dependency to your *package.json file run following:

$ npm install --save env-configuration

Usage

This configuration tool approaches application configuration from a new angle. It uses JS objects or JSON files but only to drive mapping to config object property.

Basic configuration of object itself

It provides reset method diverse behaviour when comes across an error.

Use in your project:

var envConfig = require('env-configuration');

If you want not include details of your package JSON go:

var envConfig = require('env-configuration').readPackage('./package.json');

Set throw exceptions on each error:

envConfig.options({ errors: "throw" }); // throw exception

Or start gathering errors in a common envConfig.errors array

envConfig.options({ errors: "collect" }); // or log

Driving configuration from an object

You can pass a mapping object directly to config:

 
config.loadObject({
    proxy: {
        source: 'environment', // reads from env vars
        reference: 'http_proxy'
    },
    system: {
        source: 'declaration',  // sets value below as declared here
        reference: 'my system name'
    },
    json_config: {
        source: 'declaration',
        reference: '{"hello":"world","iam":{"many":"names"}}' // JSON as string
    }
});

Or, you can pass a JSON file (of the same structure)as argument

envConfig.loadJSON('./configuration.json');

Using multiple drivers (files and objects together and/or more than one)

You can drive config from JSON and from object. merging configs from multiple sources and overloading values of one another (last value set for given key wins).

Getting application config values

Calling get with a declared function:

    console.log(configuration.get('json_config', JSON.parse));
    { hello: 'world', iam: { many: 'names' } }

Calling get with a anonymous function:

    // no callback
    console.log(configuration.get('system'));
    hard-coded-value
    
    // callback added
    console.log(configuration.get('system', function(contents){
        return contents.toUpperCase();
    }));
    HARD-CODED-VALUE

Getting application config values processed with a callback

Get (from 0.1.3) supports a callback:

    console.log(config.get('proxy'));
    http://yourProxy:8080

Getting values from package.json

Call get method:

    console.log(config.package.jsonpath('$..dependencies.system'));
    0.1.3

Ensuring config is valid

Just call method returning true|false

config.isValid();

Good luck!

Package Sidebar

Install

npm i env-configuration

Weekly Downloads

2

Version

0.1.3

License

MIT

Last publish

Collaborators

  • codebloke