js-lightning
Version:
Direct Javascript to Web interpreted server inspired by PHP
47 lines (33 loc) • 1.05 kB
JavaScript
;
const fs = require('fs');
const _ = require('lodash');
const Parser = require('./parser');
const Serializer = require('./serializer');
const Constants = require('./constants');
const defaults = {
encoding: 'utf8',
line_breaks: 'unix',
};
class MultiIni {
constructor(options = {}) {
this.options = Object.assign({}, defaults, options);
this.parser = new Parser(this.options);
this.serializer = new Serializer(this.options);
}
read(filename) {
if (!filename) {
throw new Error('Missing filename.');
}
const lines = this.fetchLines(filename);
return this.parser.parse(lines);
}
fetchLines(filename) {
const content = fs.readFileSync(filename, this.options);
return content.split(Constants.line_breaks[this.options.line_breaks]);
}
write(filename, content = {}) {
fs.writeFileSync(filename, this.serializer.serialize(content), this.options);
return ;
}
}
module.exports = MultiIni;