Spaces:
Sleeping
Sleeping
File size: 684 Bytes
d605f27 |
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 33 34 35 36 |
import fs from "fs";
import path from "path";
const walkDir = (dir, pattern, {recursive = false} = {}) => {
const list = fs.readdirSync(dir);
//console.log("files:", files);
const subdirs = [];
const files = list.map(filename => {
const file = path.resolve(dir, filename);
const stat = fs.statSync(file);
if (stat.isDirectory())
subdirs.push(file);
return {file, filename, stat};
}).filter(({filename, stat}) => !stat.isDirectory() && (!pattern || pattern.test(filename)))
.map(({file}) => file);
if (recursive) {
subdirs.forEach(subdir => {
files.push(...walkDir(subdir, pattern, {recursive}));
});
}
return files;
};
export default walkDir;
|