leanconf
Configuration without brackets, quotes or escaping, using just 2 markup characters:
- the key/value separator
:
- the comment character
#
Indented whitespace controls nesting and primitive data types are inferred.
example
# shop.conf
name: dizzib's corner shop: Leeds, Yorkshire
patrons:
alice:
cash: 5.03
bob:
credit: 10.00
fruits # omit key/val separator to parse immediate children to an array
apples
Braeburn
Cox's # omit key/val separator to parse as a value
Royal Gala
banana
orange:
special: true
stock: 17
node.js code:
var conf = require('fs').readFileSync('shop.conf'});
var obj = require('leanconf').parse(conf);
console.log(require('util').inspect(obj, {depth:null}));
output:
{ name: 'dizzib\'s corner shop: Leeds, Yorkshire',
patrons: { alice: { cash: 5.03 }, bob: { credit: 10 } },
fruits:
[ { apples: [ 'Braeburn', 'Cox\'s', 'Royal Gala' ] },
'banana',
{ orange: { special: true, stock: 17 } } ] }
methods
var leanconf = require('leanconf');
var obj = leanconf.parse(conf, opts)
Parse configuration string conf
returning object obj
.
Set opts.asArray
to return top-level items in an array (default is false
).
Set opts.comment
to change the comment character (default is #
).
Keys or values cannot contain this character.
Set opts.sep
to change the key/value separator (default is :
).
var val = leanconf.value-parser(raw)
This function parses a raw value-string to the most appropriate data type of
boolean, floating-point number, integer, null or string.
Don't call this directly, rather replace or wrap it if you want to alter
the default behaviour.
install
$ npm install leanconf
developer build and run
$ git clone --branch=dev https://github.com/dizzib/leanconf.git
$ cd leanconf
$ npm install # install dependencies
$ npm test # build all and run tests
$ npm start # start the task runner
license
MIT