leanconf

Configuration without brackets, quotes or escaping, using just 2 markup characters


Keywords
clean, config, configuration, indent, indented, js, lean, nodejs, pojo, pure, simple, whitespace
License
MIT
Install
npm install leanconf@0.2.1

Documentation

leanconf

Build Status

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