index.js
function read(path, options, callback) {
  var str = readCache[path];
  var cached = options.cache && str && ('string' === typeof str);

  // cached (only if cached is a string and not a compiled template function)
  if (cached) {
    return callback(null, str);
  }

  // read
  fs.readFile(path, 'utf8', function (err, str) {
    if (err) {
      return callback(err);
    }
    // remove extraneous utf8 BOM marker
    str = str.replace(/^\uFEFF/, '');
    if (options.cache) {readCache[path] = str;}
    callback(null, str);
  });
}
function read(path, options, callback) {
  var str = readCache[path];
  var cached = options.cache && str && ('string' === typeof str);

  // cached (only if cached is a string and not a compiled template function)
  if (cached) {
    return callback(null, str);
  }

  // read
  fs.readFile(path, 'utf8', function (err, str) {
    if (err) {
      return callback(err);
    }
    // remove extraneous utf8 BOM marker
    str = str.replace(/^\uFEFF/, '');
    if (options.cache) {readCache[path] = str;}
    callback(null, str);
  });
}
function read ( path , options , callback ) { var str = readCache [ path ] ; var cached = options . cache && str && ( 'string' === typeof str ) ; // cached (only if cached is a string and not a compiled template function) if ( cached ) { return callback ( null , str ) ; } // read fs . readFile ( path , 'utf8' , function ( err , str ) { if ( err ) { return callback ( err ) ; } // remove extraneous utf8 BOM marker str = str . replace ( / ^\uFEFF / , '' ) ; if ( options . cache ) { readCache [ path ] = str ; } callback ( null , str ) ; } ) ; }
Read `path` with `options` with
callback `(err, str)`. When `options.cache`
is true the template string will be cached.

@param {String} options
@param {Function} callback
@api private
Read path with options with callback ( err str ) . When options . cache is true the template string will be cached .