config-reader
Version:
A dynamic JSON config file reader for nodejs
99 lines (71 loc) • 2.04 kB
Markdown
config-reader
===========
[](http://badge.fury.io/js/config-reader)
[](http://waffle.io/1412/config-reader)
[](http://travis-ci.org/1412/config-reader)
## Introduction
NodeJS dynamic config file reader
## Instalation
```
npm install config-reader
```
## Usage
```
(new confreader()).parseSync(<file_path>);
(new confreader()).parse(<file_path>, callback(<error>, <result>));
```
## Sample
### Sync
```
var confreader = require("config-reader");
try {
var config = (new confreader()).parseSync("config.json");
} catch (e) {
}
console.log(config);
```
### Async
```
var confreader = require("config-reader");
(new confreader()).parse("config.json", function(error, config){
if (error) {
} else {
console.log(config);
}
});
```
## Config Format
```
# Hey, this config reader allow comment
define(HOME_PATH, function( ){ return process.env.HOME });
define(PROGRAM_PATH, function( ){ return require('path').dirname(require.main.filename) });
define(CUSTOM_PATH, "/home/username/");
define(NUMBER, 5);
define(MULTIPLY, function( a, b ) { return a * b });
{
"config": "value",
"useobject": {
"child1": 0,
"child2": 1
},
"use_array": [0, 1, 2, {}],
"use_variable": "::CUSTOM_PATH/docs/",
"use_number": ::NUMBER,
"use_function": "::HOME_PATH()",
"use_function2": ::MULTIPLY(2, 3)
}
```
## To Do
1. Suport more complex config
2. Allow multiline comment
3. Allow nested definition, and function call
4. Ignore trailing comma
5. ignore quote in key definiton
## Documentation
## Tests
## Contribution
You are welcome to contribute by writing issues or pull requests.
You are also welcome to correct any spelling mistakes or any language issues, because my english is not perfect...
## License
Copyright (c) 2014 Decky Fx
MIT (http://www.opensource.org/licenses/mit-license.php)