Package Exports
- common-env
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (common-env) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
common-env
A little helper I use everywhere for configuration. Environment variables are a really great way to quickly change a program behavior.
npm
npm install common-envUsage
var logger = console;
var env = require('common-env')(logger);
// AMQP_LOGIN=plop AMQP_CONNECT=true AMQP_EXCHANGES[0]_NAME=new_exchange node test.js
var config = env.getOrElseAll({
amqp: {
login: 'guest',
password: 'guest',
host: 'localhost',
port: 5672,
connect: false,
exchanges:[{
name: 'first_exchange'
},{
name: 'second_exchange'
}]
},
FULL_UPPER_CASE: {
PORT: 8080
},
MICROSTATS: {
HASHKEY: 'B:mx:global'
}
});
t.strictEqual(config.amqp.login, 'plop'); // converted from env
t.strictEqual(config.amqp.port, 5672);
t.strictEqual(config.amqp.connect, true); // converted from env
t.strictEqual(config.amqp.exchanges[0].name, 'new_exchange'); // extracted from env
t.strictEqual(config.FULL_UPPER_CASE.PORT, 8080);Specifying multiple aliases
It sometimes useful to be able to specify aliases, for instance Clever-cloud or Heroku exposes their own environment variable names while your application's internal code may not want to rely on them.
Common-env adds a layer of indirection enabling you to specify environment aliases that won't impact your codebase.
Usage
var config = env.getOrElseAll({
amqp: {
login: {
$default: 'guest',
$aliases: ['ADDON_RABBITMQ_LOGIN', 'LOCAL_RABBITMQ_LOGIN']
},
password: 'guest',
host: 'localhost',
port: 5672
},
});
t.strictEqual(config.amqp.login, 'plop'); // converted from envHow common-env resolves config.amqp.login
- Common-env will first read
ADDON_RABBITMQ_LOGINenvironment variable, if it exists, its value will be used. - If not common-env will read
LOCAL_RABBITMQ_LOGIN, if it exists, its value will be used. - If not common-env will read
AMQP_LOGIN, if it exists, its value will be used. - If not common-env will fallback on
$defaultvalue.


