conf-cfg-ini

1.2.3 • 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)

Readme

Keywords

Package Sidebar

Install

npm i conf-cfg-ini

Weekly Downloads

39

Version

1.2.3

License

MIT

Unpacked Size

18.4 kB

Total Files

7

Last publish

Collaborators

  • loge5