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

95% Statements 19/20
66.67% Branches 4/6
100% Functions 0/0
94.12% Lines 16/17
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 31 32       16× 26×   26× 14× 12× 12×       16× 16× 16×     26× 16×              
const stat = require('./stat');
 
// lists first-level files and directories inside a directory
const list = (fsReaddir, fsStat, join) => {
  const statFn = stat(fsStat);
 
  return (path) => {
    const entries = { files: [], dirs: [] };
    const addEntry = p => statFn(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));
        }
      });
    });
  };
};
 
module.exports = list;