/**
* file-manager-js/list
* @copyright 2018 Eyas Ranjous <eyas.ranjous@gmail.com>
* @license MIT
*/
// lists first-level files and directories inside a directory
const hof = (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));
}
});
});
};
module.exports = hof;
|