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