blob: 67be77618db8466ddfaef747ffafffb96029f0ab [file] [log] [blame]
'use strict';
const fs = require('fs');
const path = require('path');
module.exports = function sortByIsDirectory(dir, paths, cb) {
// take the listing file names in `dir`
// returns directory and file array, each entry is
// of the array a [name, stat] tuple
let pending = paths.length;
const errs = [];
const dirs = [];
const files = [];
if (!pending) {
cb(errs, dirs, files);
return;
}
paths.forEach((file) => {
fs.stat(path.join(dir, file), (err, s) => {
if (err) {
errs.push([file, err]);
} else if (s.isDirectory()) {
dirs.push([file, s]);
} else {
files.push([file, s]);
}
pending -= 1;
if (pending === 0) {
cb(errs, dirs, files);
}
});
});
};