Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    config-readerpublic

    config-reader

    NPM version Stories in Ready build status

    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)

    install

    npm i config-reader

    Downloadsweekly downloads

    6

    version

    0.1.1

    license

    none

    repository

    githubgithub

    last publish

    collaborators

    • avatar