| var fs = require( 'fs' ); | |
| var write = require( 'write' ); | |
| 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 ) { | |
| write.sync( filePath, flatted.stringify( data ) ); | |
| } | |
| }; |