24 lines
765 B
JavaScript
24 lines
765 B
JavaScript
import { join } from "path";
|
|
import { nonNullable } from "./non-nullable";
|
|
import { promises } from "fs";
|
|
export async function flatReaddir(dir, include) {
|
|
const dirents = await promises.readdir(dir, {
|
|
withFileTypes: true
|
|
});
|
|
const result = await Promise.all(dirents.map(async (part)=>{
|
|
const absolutePath = join(dir, part.name);
|
|
if (part.isSymbolicLink()) {
|
|
const stats = await promises.stat(absolutePath);
|
|
if (stats.isDirectory()) {
|
|
return null;
|
|
}
|
|
}
|
|
if (part.isDirectory() || !include.test(part.name)) {
|
|
return null;
|
|
}
|
|
return absolutePath;
|
|
}));
|
|
return result.filter(nonNullable);
|
|
}
|
|
|
|
//# sourceMappingURL=flat-readdir.js.map
|