encode and decode ini,conf,cfg files
npm install conf-cfg-iniShell
npm install conf-cfg-ini
`
$3
`JavaScript
//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:
`INI
[SectionA]
a=1
b=2
[SectionB]
bar=foo
`
will be decoded to:
`JSON
{
"SectionA": {
"a": "1",
"b": "2"
},
"SectionB": {
"bar": "foo"
}
}
`
$3
There are two ways to set options:
`JavaScript
//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)|