all files / file-manager-js/lib/list/ fn.js

94.12% Statements 16/17
66.67% Branches 4/6
100% Functions 0/0
92.31% Lines 12/13
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30              16× 26×   26× 14× 12× 12×       16× 16× 16×     26× 16×          
/**
 * file-manager-js/list
 * @copyright 2018 Eyas Ranjous <eyas.ranjous@gmail.com>
 * @license MIT
 */
 
// lists first-level files and directories inside a directory
module.exports = (fsReaddir, stat, join) => (path) => {
  const entries = { files: [], dirs: [] };
  const addEntry = p => stat(p)
    .then((stats) => {
      if (stats.isDirectory()) {
        entries.dirs.push(p);
      } else Eif (stats.isFile()) {
        entries.files.push(p);
      }
    });
 
  return new Promise((resolve, reject) => {
    fsReaddir(path, (error, content) => {
      Iif (error) {
        reject(error);
      } else {
        const listing = content.map(c => addEntry(join(path, c)));
        Promise.all(listing).then(() => resolve(entries));
      }
    });
  });
};