Name: conf.js
Owner: Resin.io
Description: Support per-user and per-project configuration files out of the box.
Created: 2014-12-11 14:58:40.0
Updated: 2017-03-06 13:28:47.0
Pushed: 2015-08-07 13:44:11.0
Size: 260
Language: CoffeeScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
conf.js allows you to get per-user and per-project configuration files out of the box.
Look how easy it is to use:
ttings.coffee
= require('path')
JS = require('conf.js')
le.exports = new ConfJS
userConfig: path.join(process.env.HOME, '.myprojectrc.json')
localConfig: '.myprojectrc.json'
default:
# Your usual application settings
port: '9999'
name: 'My cool app!'
...
Now if $HOME/.myprojecrc
exists, it's settings will override the defaults.
If then create a .myprojecrc
file inside one of your projects directory and run the application from within that directory, the contents will override $HOME/.myprojecrc
and defaults.
Notice that you can set a custom local configuration file within your user configuration and it'll be correctly used.
You can now get
/set
your settings with:
ings = require('./settings')
ings.get('port') # 9999
ings.set('name', 'My really cool app!')
Specify userConfig
to the user configuration file path.
Specify localConfig
to the local configuration file name.
Install conf.js by running:
m install --save conf.js
Create an instance of settings.
The following options are accepted:
parse
: The function used to parse inputs (defaults to JSON.parse
).encoding
: The encoding to be used when reading files (defaults to utf8
).default
: Default settings.userConfig
: The user config file path.localConfig
: The user local file name.Extend setting with the contents of a file.
Set runtime value of a setting, or create a new one.
Notice you can set nested keys:
ings.set('my.nested.key', 'value')
Get the value of a setting.
Notice you can get nested keys:
ings.get('my.nested.key')
If you pass no key to settings.get()
, then you will get back all the settings.
Check if settings has a specific key.
Extend settings with object/s.
Check if settings object is empty.
Parse input given a function passed to options.parse
.
Run the test suite by doing:
lp test
Before submitting a PR, please make sure that you include tests, and that coffeelint runs without any warning:
lp lint
If you are having any problem, please raise an issue.
get()
function returns all settings if no key.The project is licensed under the MIT license.