Wondering what’s next for npm?Check out our public roadmap! »

    conf-cfg-ini

    1.2.2 • Public • Published

    conf-cfg-ini

    npm version Build Status dependencies Status devDependencies Status

    Encode and decode conf/cfg/ini-Files with Node.js

    loge5/conf-cfg-ini

    There are already a lot of ini-parser on the npm repository. But none of these fits all my needs. So here is an attempt to create a very flexible but easy to use parser.

    Features

    • Linebreak detection (windows, unix, mac)
    • Set custom identifiers for sections, comments and assignments
    • line trim is optional
    • set default value
    • tested with mocha+chai

    Installation

    npm install conf-cfg-ini

    Usage

    //read config-String from file
    var fs = require('fs');
    var raw = fs.readFileSync('./test.ini');
    
    var Config = require('conf-cfg-ini');
    var config = new Config();
    config.options.lineEnding = config.detectLineEnding(raw);
    
    //decode to get a simple js object
    var configObject = config.decode(raw);
    
    //encode to get a config-String
    var configString = config.encode(configObject);

    Example Config:

    [SectionA]
    a=1
    b=2
    
    [SectionB]
    bar=foo

    will be decoded to:

    {
      "SectionA": {
        "a": "1",
        "b": "2"
      },
      "SectionB": {
        "bar": "foo"
      }
    }

    Options

    There are two ways to set options:

    //set options at construction
    var config = new Config({
      lineEnding: "\r\n",
      sectionOpenIdentifier: '[',
      sectionCloseIdentifier: ']',
      defaultValue: true,
      assignIdentifier: "=",
      commentIdentifiers: [";"],
      trimLines: true
    });
    
    //or after construction
    config.options.lineEnding = "\n";
    Option Default Description
    lineEnding "\r\n" Line ending (break)
    sectionOpenIdentifier "[" First char of section line
    sectionCloseIdentifier "]" Last char of section line
    defaultValue true Default value for keys without value
    assignIdentifier "=" String after key and before value
    commentIdentifiers [";"] List of commentIdentifiers (strings)
    trimLines true Ignore space
    valueIdentifier undefined surroundings of values (key="value1")
    ignoreMultipleAssignIdentifier false A==B would be read as A=B (usefull for tab/spaced files)

    Install

    npm i conf-cfg-ini

    DownloadsWeekly Downloads

    14

    Version

    1.2.2

    License

    MIT

    Unpacked Size

    18.4 kB

    Total Files

    7

    Last publish

    Collaborators

    • avatar