0.3.0 • Published 10 years ago

configury v0.3.0

Weekly downloads
81
License
ISC
Repository
github
Last release
10 years ago

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

0.3.0

10 years ago

0.2.0

11 years ago

0.1.0

11 years ago

0.0.1

11 years ago