var fs = require('fs'); | |
var path = require('path'); | |
var flatted = require('flatted'); | |
module.exports = { | |
tryParse: function (filePath, defaultValue) { | |
var result; | |
try { | |
result = this.readJSON(filePath); | |
} catch (ex) { | |
result = defaultValue; | |
} | |
return result; | |
}, | |
/** | |
* Read json file synchronously using flatted | |
* | |
* @method readJSON | |
* @param {String} filePath Json filepath | |
* @returns {*} parse result | |
*/ | |
readJSON: function (filePath) { | |
return flatted.parse( | |
fs.readFileSync(filePath, { | |
encoding: 'utf8', | |
}) | |
); | |
}, | |
/** | |
* Write json file synchronously using circular-json | |
* | |
* @method writeJSON | |
* @param {String} filePath Json filepath | |
* @param {*} data Object to serialize | |
*/ | |
writeJSON: function (filePath, data) { | |
fs.mkdirSync(path.dirname(filePath), { | |
recursive: true, | |
}); | |
fs.writeFileSync(filePath, flatted.stringify(data)); | |
}, | |
}; | |