Easy management of environment based configuration
npm install configury
Using in-memory configuration
var configury = require('configury')
, config = configury()
Using configuration file on disk
var configury = require('configury')
, config = configury('./properties.json')
Using default config section other than 'global'
var configury = require('configury')
, config = configury('./properties.json', 'myDefaultConfigSection')
var configury = require('configury')
, config = configury('./properties.json')
config.raw()
//-> { "global": { "foo": "bar" }, "development": { "foo": "bar" } ... }
Save the current configuration in memory to disk
var configury = require('configury')
, config = configury('./properties.json')
// Write to './properties.json' file on disk synchronously
config.write()
// Write to './properties.json' file on disk asynchronously
config.write(false, function (err) {
if (!err) console.log('Yeah')
})
// Write to './myBackupProperties.json' file on disk asynchronously
config.write('myBackupProperties.json', function (err) {
if (!err) console.log('Yeah')
})
// Write to './myBackupProperties.json' file on disk synchronously
config.write('myBackupProperties.json')
Setting a variable in 'global' configuration
var configury = require('configury')
, config = configury('./properties.json')
config.set('Alice', 'Bob')
config.raw()
//-> { "global": { "Alice": "Bob" } ... }
Setting a variable in 'myCustomGlobal'
var configury = require('configury')
, config = configury('./properties.json', 'myCustomGlobal')
config.set('Alice', 'Bob')
config.raw()
//-> { "myCustomGlobal": { "Alice": "Bob" } ... }
var configury = require('configury')
, config = configury('./properties.json', 'myCustomGlobal')
var mySection = config.section('mySection')
//-> mySection = { set: function(key, value), merge: function(object) }
Setting a variable in 'mySection'
var configury = require('configury')
, config = configury('./properties.json')
, mySection = config.section('mySection')
mySection.set('Alice', 'Bob')
config.raw()
//-> { "global": { ... } "mySection" { "Alice": "Bob" } }
Merging an object over a property in the configuration
var configury = require('configury')
, config = configury('./properties.json')
config.set('foo', 'bar')
//-> { "global": { "foo": "bar" } ... }
config.merge({ 'global': { 'foo': 'woo' }, 'pickles': 'bananas' })
//-> { "global": { "foo": "woo" }, "pickles": "bananas" }
Merging an object over a property in 'mySection'
var configury = require('configury')
, config = configury('./properties.json')
, mySection = config.section('mySection')
mySection.set('foo', 'bar')
//-> { "global": { ... } "mySection": { "foo": "bar" } }
mySection.merge({ 'foo': 'woo' })
//-> { "global": { ... } "mySection": { "foo": "woo" } }
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:
var configury = require('configury')
, config = configury()
config.set('url', 'http://localhost:3000')
config.set('loginUrl', '%url%/login')
console.log(config().loginUrl)
//-> 'http://localhost:3000/login'
Paul Serby follow me on twitter @serby
Licensed under the New BSD License