43 lines
		
	
	
		
			916 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			43 lines
		
	
	
		
			916 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								//      
							 | 
						||
| 
								 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								const fs = require('fs');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                
							 | 
						||
| 
								 | 
							
								                          
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function readFile(filepath        , options          )                         {
							 | 
						||
| 
								 | 
							
								  options = options || {};
							 | 
						||
| 
								 | 
							
								  const throwNotFound = options.throwNotFound || false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return new Promise((resolve, reject) => {
							 | 
						||
| 
								 | 
							
								    fs.readFile(filepath, 'utf8', (err, content) => {
							 | 
						||
| 
								 | 
							
								      if (err && err.code === 'ENOENT' && !throwNotFound) {
							 | 
						||
| 
								 | 
							
								        return resolve(null);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      if (err) return reject(err);
							 | 
						||
| 
								 | 
							
								      resolve(content);
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								readFile.sync = function readFileSync(
							 | 
						||
| 
								 | 
							
								  filepath        ,
							 | 
						||
| 
								 | 
							
								  options          
							 | 
						||
| 
								 | 
							
								)                {
							 | 
						||
| 
								 | 
							
								  options = options || {};
							 | 
						||
| 
								 | 
							
								  const throwNotFound = options.throwNotFound || false;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  try {
							 | 
						||
| 
								 | 
							
								    return fs.readFileSync(filepath, 'utf8');
							 | 
						||
| 
								 | 
							
								  } catch (err) {
							 | 
						||
| 
								 | 
							
								    if (err.code === 'ENOENT' && !throwNotFound) {
							 | 
						||
| 
								 | 
							
								      return null;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    throw err;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = readFile;
							 |