1.0.1 • Published 7 years ago

optimist-config-file v1.0.1

Weekly downloads
452
License
MIT
Repository
github
Last release
7 years ago

optimist-config-file npm version Build Status

Extends optimist npm module with support for JSON/YAML config file and Docker's inspired environment variables handling.

How to use it

Refer to examples/example.js

npm install --save optimist-config-file
const program = require('optimist-config-file');

program
	.usage('...')
	// ...
	.describe('config', 'uses JSON or YAML-formatted config file to set parameters').string('config');

// handle --config option for passing YAML/JSON config files
program.setConfigFile('config');

// allow env variables to be passed
program.setReplacementVars(process.env);

// parse options
const options = program.parse(process.argv);

console.log(options);

Example

YAML config file:

banner: Hello, ${USERNAME}! Greetings from ${HOSTNAME:-The Unknown Machine}.

Invocations with environment variables and options:

./example.js  --config config.yaml
Hello, macbre! Greetings from The Unknown Machine.

HOSTNAME=`hostname` ./example.js  --config config.yaml
Hello, macbre! Greetings from debian.

./example.js  --config config.yaml --banner='foo'
Hello, macbre! Greetings from The Unknown Machine.

As you can see config file values have precedence over command line ones.