@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
51 lines • 3.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const fs = require("fs-extra");
const path = require("path");
class FileSystem {
/**
* List nested files within a directory
* @param directory
* @param includeDirectories
* @returns
*/
static readdirRecursive(searchDirectory, includeDirectories = false, isAbsolute = false) {
const result = [];
if (!fs.lstatSync(searchDirectory).isDirectory())
throw new Error(`${searchDirectory} is not a directory`);
(function readdirRecursiveHandler(directory) {
const files = fs.readdirSync(directory);
files.forEach((file) => {
let filepath;
if (isAbsolute) {
filepath = path.resolve(directory, file);
}
else {
filepath = path.join(directory, file);
}
if (fs.lstatSync(filepath).isDirectory()) {
if (includeDirectories) {
if (isAbsolute) {
result.push(path.resolve(filepath));
}
else {
result.push(path.relative(searchDirectory, filepath));
}
}
readdirRecursiveHandler(filepath);
}
else {
if (isAbsolute) {
result.push(path.resolve(filepath));
}
else {
result.push(path.relative(searchDirectory, filepath));
}
}
});
})(searchDirectory);
return result;
}
}
exports.default = FileSystem;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmlsZVN5c3RlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlL3V0aWxzL0ZpbGVTeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwrQkFBZ0M7QUFDaEMsNkJBQThCO0FBRTlCLE1BQXFCLFVBQVU7SUFDM0I7Ozs7O09BS0c7SUFDSCxNQUFNLENBQUMsZ0JBQWdCLENBQ25CLGVBQXVCLEVBQ3ZCLHFCQUE4QixLQUFLLEVBQ25DLGFBQXNCLEtBQUs7UUFFM0IsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFdBQVcsRUFBRTtZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxlQUFlLHFCQUFxQixDQUFDLENBQUM7UUFFM0csQ0FBQyxTQUFTLHVCQUF1QixDQUFDLFNBQWlCO1lBQy9DLE1BQU0sS0FBSyxHQUFhLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFbEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUNuQixJQUFJLFFBQWdCLENBQUM7Z0JBQ3JCLElBQUksVUFBVSxFQUFFLENBQUM7b0JBQ2IsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUM3QyxDQUFDO3FCQUFNLENBQUM7b0JBQ0osUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMxQyxDQUFDO2dCQUVELElBQUksRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO29CQUN2QyxJQUFJLGtCQUFrQixFQUFFLENBQUM7d0JBQ3JCLElBQUksVUFBVSxFQUFFLENBQUM7NEJBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7d0JBQ3hDLENBQUM7NkJBQU0sQ0FBQzs0QkFDSixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7d0JBQzFELENBQUM7b0JBQ0wsQ0FBQztvQkFDRCx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEMsQ0FBQztxQkFBTSxDQUFDO29CQUNKLElBQUksVUFBVSxFQUFFLENBQUM7d0JBQ2IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7b0JBQ3hDLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7b0JBQzFELENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFcEIsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKO0FBaERELDZCQWdEQyJ9