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
- Suport more complex config
- Allow multiline comment
- Allow nested definition, and function call
- Ignore trailing comma
- 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)