1.2.5 • Published 6 years ago
ezini v1.2.5
An very easy to use ini file parser and serializer for node.js
Installation
npm install --save ezini
Usage
const ini = require("ezini");
parse(str, options, callback)
ini.parse(str, options, (obj) => {
console.log(obj)
})
where options
is a simple object, for now it only support one option {preserveQuotes: true}
or you can use the synchronize version parseSync(str, options)
In order to keep backward compatibility, the second parameter
options
can also be assigned a callback function (e.g.parse(str, callback)
)
stringify(obj, callback)
ini.stringify(obj, (str) => {
console.log(str)
})
or use the synchronize version stringifySync(obj)
Example
Giving a example ini file foobar.ini
which looks like this:
[owner]
name=John Do
organization=Acme eProducts
rich=true
richStr="true"
[database]
server=192.0.2.42
; use IP address in case network name resolution is not working
port=143
portStr="143"
file = "acme payroll.dat"
You can parse this ini file like this:
str = fs.readFileSync("foobar.ini"), "utf-8")
ini.parse(strINI, (obj) => {
console.log(obj)
})
and then obj
would looks like this:
{ owner:
{ name: 'John Do',
organization: 'Acme eProducts',
rich: true,
richStr: 'true' },
database:
{ server: '192.0.2.42',
port: 143,
portStr: '143',
file: 'acme payroll.dat' } }
but if perserveQuotes
is set to true
, like this:
str = fs.readFileSync("foobar.ini"), "utf-8")
ini.parse(strINI, {preserveQuotes: true}, (obj) => {
console.log(obj)
})
the output will be like this
{ owner:
{ name: 'John Do',
organization: 'Acme eProducts',
rich: true,
richStr: '"true"' },
database:
{ server: '192.0.2.42',
port: 143,
portStr: '"143"',
file: '"acme payroll.dat"' } }
You can also stringify the the first output object like this:
ini.stringify(obj, (str) => {
console.log(str)
})
str
would looks like this:
[owner]
name=John Do
organization=Acme eProducts
rich=true
richStr="true"
[database]
server=192.0.2.42
port=143
portStr="143"
file=acme payroll.dat