UNPKG

827 BJavaScriptView Raw
1const fs = require('fs');
2const path = require('path');
3
4const walk = (dir, includes = []) => {
5 let results = [];
6 const rootDir = path.resolve(dir);
7 const files = fs.readdirSync(rootDir);
8 files.forEach(list => {
9 list = path.join(rootDir, list)
10 const stat = fs.statSync(list);
11 if (stat.isDirectory()) {
12 results = results.concat(walk(list, includes));
13 }
14 if (stat.isFile()) {
15 if (includes.length <= 0) {
16 results.push(list);
17 } else if (includes.includes(path.extname(list))) {
18 results.push(list);
19 }
20 }
21 });
22 return results;
23};
24
25exports.globSync = (dir, includes = []) => {
26 if (!(fs.existsSync(path.resolve(dir)))) return [];
27 return walk(dir, includes);
28};
29exports.globAsync = (dir, includes = []) => {
30 return Promise.resolve(walk(dir, includes));
31};
\No newline at end of file