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)); }, };