Load YAML configs based on current node environment.
Let's say you have this kind of config setup:
config/ config.yml // Shared configuration config.dev.yml // Extended dev configuration config.production.yml // Extended production configuration
Then ConfigLoader can help you load these based on current environment. Let's
say you are running node in a development environment by setting
$ NODE_ENV=dev node yourapp.js
ConfigLoader would then load up
config.yml and extend it
config.yml might look like this:
site:title: My Awesome Sitehttp:port: 80database:user:pass:
config.dev.yml might look like this:
http:port: 1337database:user: rootpass: IAMMEGAHAxx00r
The loaded configuration would then be:
site: title: "My Awesome Site"http: port: 1337database: user: 'root' pass: 'IAMMEGAHAxx00r'
ConfigLoader is one single function that behaves a bit differently depending on what arguments you give it.
If you do not give ConfigLoader a callback function it will do the loading synchronously.
var configloader = ;var config = ;
path/to/configs does not contain any files matching the requirements an
error will be thrown if loading is done synchronously.
If you do give ConfigLoader a callback function it will return the loaded configuration to that function.
var configloader = ;;
If any of the configuration files contains YAML errors the
err argument will
be the error from js-yaml.
If no configurations files were found in
path/to/configs I think you will
undefined as the second argument. :P
If you want to force a certain environent to be used you can pass
as a second argument to
By convention ConfigLoader requires you to name your configuration files
using this pattern:
If you'd like to change this pull requests making more use of the
argument are very much welcome!
If ConfigLoader can't find any configured environment it will fall back on
Install with npm:
$ npm install configloader
Tests are written using