optimist-config-file

1.0.1 • Public • Published

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.

Package Sidebar

Install

npm i optimist-config-file

Weekly Downloads

54

Version

1.0.1

License

MIT

Last publish

Collaborators

  • macbre