Spaces:
Sleeping
Sleeping
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; | |