index.js
function fsReaddirSync(root, files, fp) {
  if (typeof root !== 'string') {
    throw new TypeError('fsReaddir.sync: expect `root` to be string');
  }

  fp = fp || '';
  files = files || [];

  var dir = path.join(root, fp);
  if (fs.statSync(dir).isDirectory()) {
    fs.readdirSync(dir).forEach(function(name) {
      fsReaddirSync(root, files, path.join(dir, name));
    });
  } else {
    files.push(fp);
  }

  return files;
}
function fsReaddirSync(root, files, fp) {
  if (typeof root !== 'string') {
    throw new TypeError('fsReaddir.sync: expect `root` to be string');
  }

  fp = fp || '';
  files = files || [];

  var dir = path.join(root, fp);
  if (fs.statSync(dir).isDirectory()) {
    fs.readdirSync(dir).forEach(function(name) {
      fsReaddirSync(root, files, path.join(dir, name));
    });
  } else {
    files.push(fp);
  }

  return files;
}
function fsReaddirSync ( root , files , fp ) { if ( typeof root !== 'string' ) { throw new TypeError ( 'fsReaddir.sync: expect `root` to be string' ) ; } fp = fp || '' ; files = files || [ ] ; var dir = path . join ( root , fp ) ; if ( fs . statSync ( dir ) . isDirectory ( ) ) { fs . readdirSync ( dir ) . forEach ( function ( name ) { fsReaddirSync ( root , files , path . join ( dir , name ) ) ; } ) ; } else { files . push ( fp ) ; } return files ; }
`fs-readdir-recursive` without filter feature

@param  {String} `root`
@param  {Array} `files`
@param  {String} `fp`
@return {Array}
fs - readdir - recursive without filter feature