@codenoobforreal/clitools
Version:
CLI tool for video processing (H.265/HEVC encoding & QuickTime compatibility) using FFmpeg, and batch lossless image compression with format preservation
19 lines • 912 B
JavaScript
import { createConcurrencyLimit } from "../libs/concurrency.js";
import { globSearchFileEntries } from "../libs/glob.js";
export async function collectFilesFromDirectory(directoryPath, options) {
const { pattern, validator } = options;
try {
const fileEntries = await globSearchFileEntries(directoryPath, pattern);
const limit = createConcurrencyLimit();
const validationTasks = fileEntries
.filter((fileEntry) => !fileEntry.isSymbolicLink())
.map((notSymLinkEntry) => limit(() => validator(notSymLinkEntry.fullpath())));
const results = await Promise.allSettled(validationTasks);
return results.flatMap((result) => result.status === "fulfilled" && result.value ? [result.value] : []);
}
catch (error) {
console.error("Failed to scan directory:", error);
return [];
}
}
//# sourceMappingURL=file-collector.js.map