configury

0.3.0 • Public • Published

configury

Easy management of environment based configuration

build status

Installation

  npm install configury

Usage

configury([path, defaultSection])

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')
 

config.raw()

var configury = require('configury')
  , config = configury('./properties.json')
 
config.raw()
//-> { "global": { "foo": "bar" }, "development": { "foo": "bar" } ... }
 

config.write([path, cb])

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')
 

config.set(key, value)

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" } ... }
 

config.section(section)

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" } }
 

config.merge()

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" } }
 

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:

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'

Credits

Paul Serby follow me on twitter @serby

Licence

Licensed under the New BSD License

Readme

Keywords

none

Package Sidebar

Install

npm i configury

Weekly Downloads

92

Version

0.3.0

License

ISC

Last publish

Collaborators

  • microadam
  • serby
  • jack828