Skip to content

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

License

Notifications You must be signed in to change notification settings

dizzib/leanconf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published