1.2.3 • Published 2 years ago

conf-cfg-ini v1.2.3

Weekly downloads
6
License
MIT
Repository
github
Last release
2 years ago

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";
OptionDefaultDescription
lineEnding"\r\n"Line ending (break)
sectionOpenIdentifier"["First char of section line
sectionCloseIdentifier"]"Last char of section line
defaultValuetrueDefault value for keys without value
assignIdentifier"="String after key and before value
commentIdentifiers";"List of commentIdentifiers (strings)
trimLinestrueIgnore space
valueIdentifierundefinedsurroundings of values (key="value1")
ignoreMultipleAssignIdentifierfalseA==B would be read as A=B (usefull for tab/spaced files)
1.2.3

2 years ago

1.2.2

3 years ago

1.2.1

4 years ago

1.2.0

5 years ago

1.1.1

5 years ago

1.1.0

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago