You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							39 lines
						
					
					
						
							892 B
						
					
					
				
			
		
		
	
	
							39 lines
						
					
					
						
							892 B
						
					
					
				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 ) ); | 
						|
  } | 
						|
};
 | 
						|
 |