configury
Easy management of environment based configuration
![build status](https://secure.travis-ci.org/serby/configury.png)
Installation
npm install configury
Usage
configury([pathOrConfig, defaultSection])
Using in-memory configuration
const configury = require('configury')
const config = configury()
Using configuration file on disk
const configury = require('configury')
const config = configury('./properties.json')
Using default config section other than 'global'
const configury = require('configury')
const config = configury('./properties.json', 'myDefaultConfigSection')
Using existing config object
const config = {
global: {
foo: 'bar'
},
sectionName: {
bar: 'baz'
}
}
const configury = require('configury')
const config = configury(config)
config.raw()
const configury = require('configury')
const config = configury('./properties.json')
config.raw()
config.write([path, cb])
Save the current configuration in memory to disk
const configury = require('configury')
const config = configury('./properties.json')
config.write()
config.write(false, function (err) {
if (!err) console.log('Yeah')
})
config.write('myBackupProperties.json', function (err) {
if (!err) console.log('Yeah')
})
config.write('myBackupProperties.json')
config.set(key, value)
Setting a variable in 'global' configuration
const configury = require('configury')
const config = configury('./properties.json')
config.set('Alice', 'Bob')
config.raw()
Setting a variable in 'myCustomGlobal'
const configury = require('configury')
const config = configury('./properties.json', 'myCustomGlobal')
config.set('Alice', 'Bob')
config.raw()
config.section(section)
const configury = require('configury')
const config = configury('./properties.json', 'myCustomGlobal')
const mySection = config.section('mySection')
Setting a variable in 'mySection'
const configury = require('configury')
const config = configury('./properties.json')
const mySection = config.section('mySection')
mySection.set('Alice', 'Bob')
config.raw()
config.merge()
Merging an object over a property in the configuration
const configury = require('configury')
const config = configury('./properties.json')
config.set('foo', 'bar')
config.merge({ 'global': { 'foo': 'woo' }, 'pickles': 'bananas' })
Merging an object over a property in 'mySection'
const configury = require('configury')
const config = configury('./properties.json')
const mySection = config.section('mySection')
mySection.set('foo', 'bar')
mySection.merge({ 'foo': 'woo' })
Substitution
By default, configury will substitute any values that match the pattern: %string%
. This will substitute the current value with the value of that key if it exists. E.g:
const configury = require('configury')
const config = configury()
config.set('url', 'http://localhost:3000')
config.set('loginUrl', '%url%/login')
console.log(config().loginUrl)
Credits
Paul Serby follow me on twitter @serby
Licence
Licensed under the New BSD License