@sapphire/node-utilities
Version:
Node specific JavaScript utilities for the Sapphire Community
42 lines (39 loc) • 1.96 kB
JavaScript
;
var promises = require('fs/promises');
var path = require('path');
var __defProp = Object.defineProperty;
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
async function* findFilesRecursively(path$1, predicate = () => true) {
const dir = await promises.opendir(path$1);
for await (const item of dir) {
if (item.isFile() && predicate(item.name)) {
yield path.join(dir.path, item.name);
} else if (item.isDirectory()) {
yield* findFilesRecursively(path.join(dir.path, item.name), predicate);
}
}
}
__name(findFilesRecursively, "findFilesRecursively");
function findFilesRecursivelyStringStartsWith(path, fileStartsWith) {
return findFilesRecursively(path, (filePath) => filePath.startsWith(fileStartsWith));
}
__name(findFilesRecursivelyStringStartsWith, "findFilesRecursivelyStringStartsWith");
function findFilesRecursivelyStringEndsWith(path, fileEndsWith) {
return findFilesRecursively(path, (filePath) => filePath.endsWith(fileEndsWith));
}
__name(findFilesRecursivelyStringEndsWith, "findFilesRecursivelyStringEndsWith");
function findFilesRecursivelyStringIncludes(path, include) {
return findFilesRecursively(path, (filePath) => filePath.includes(include));
}
__name(findFilesRecursivelyStringIncludes, "findFilesRecursivelyStringIncludes");
function findFilesRecursivelyRegex(path, regex) {
return findFilesRecursively(path, (filePath) => regex.test(filePath));
}
__name(findFilesRecursivelyRegex, "findFilesRecursivelyRegex");
exports.findFilesRecursively = findFilesRecursively;
exports.findFilesRecursivelyRegex = findFilesRecursivelyRegex;
exports.findFilesRecursivelyStringEndsWith = findFilesRecursivelyStringEndsWith;
exports.findFilesRecursivelyStringIncludes = findFilesRecursivelyStringIncludes;
exports.findFilesRecursivelyStringStartsWith = findFilesRecursivelyStringStartsWith;
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.cjs.map