multi-ini


An ini-file parser which supports multi line, multiple levels and arrays to get a maximum of compatibility with Zend config files.
Install
npm install multi-ini
Usage
ini = require('multi-ini');
content = ini.read(file);
content.section.key = value;
ini.write(file, content);
Options
Following options are available:
- encoding ['utf8'] - directly passed to readFileSync
- keep_quotes [false] - does not strip quotes around values
- filters - predefined lowercase, uppercase, trim
Examples
encoding
ini = require('multi-ini');
content = ini.read(file, {encoding: 'utf8'});
content.section.key = value;
ini.write(file, content, {encoding: 'utf8'});
keep_quotes
This option is by default off to be backward compatible, if you ever need the value containing the quotes then use this.
key="value"
Enabling this option will result in "value" instead of value.
ini = require('multi-ini');
content = ini.read(file, {keep_quotes: false});
filters
MultiIni = require('multi-ini');
ini = new MultiIni.Class({
filters: [MultiIni.filters.lowercase]
});
content = ini.read(file);
Define a custom filter
MultiIni = require('multi-ini');
ini = new MultiIni.Class({
filters: [
function (value) {
return "Prepend " + value;
}
]
});
content = ini.read(file);
line_breaks
Either unix
or windows
for line breaks.
ini = require('multi-ini');
content = ini.read(file, {line_breaks: 'windows'});
content.section.key = value;
Changelog
0.5.2
- Introduced option for line breaks
0.5.1
- Fixed a bug where single lines of multilines got trimmed
0.5.0
- Added support for filters per value
0.4.0
- Refactoring of the basic implementation to be no longer a singleton
- Fixed a bug with wrong detected escaped double quotes
0.2.5
Now correctly reads
key= example
to the value "example" instead of "** example**"
0.2.4
Implemented support for constants and removed a lot of bugs and the options ignore_invalid and oninvalid, this may be introduced again but are currently not necessary.
0.2.3
Fixed a bug that the module was not recognized as a module by Node.