@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
91 lines • 7.33 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
const fs_1 = require("fs");
const FileSystem_1 = __importDefault(require("../../utils/FileSystem"));
const ignore_1 = __importDefault(require("ignore"));
class PackageEmptyChecker {
static isToBreakBuildForEmptyDirectory(projectDir, sourceDirectory, isToBreakBuildIfEmpty) {
let directoryToCheck;
let status = {
message: '',
result: '',
};
if (projectDir != null) {
directoryToCheck = path_1.default.join(projectDir, sourceDirectory);
}
else
directoryToCheck = sourceDirectory;
try {
if (!(0, fs_1.existsSync)(directoryToCheck)) {
//Folder do not exists, break build
if (isToBreakBuildIfEmpty) {
status.message = `Folder not Found , Stopping build as isToBreakBuildIfEmpty is ${isToBreakBuildIfEmpty}`;
status.result = 'break';
}
else {
status.message = `Folder not Found , Skipping task as isToBreakBuildIfEmpty is ${isToBreakBuildIfEmpty}`;
status.result = 'skip';
}
return status;
}
else if (PackageEmptyChecker.isEmptyFolder(projectDir, sourceDirectory)) {
if (isToBreakBuildIfEmpty) {
status.message = `Folder is Empty , Stopping build as isToBreakBuildIfEmpty is ${isToBreakBuildIfEmpty}`;
status.result = 'break';
}
else {
status.message = `Folder is Empty, Skipping task as isToBreakBuildIfEmpty is ${isToBreakBuildIfEmpty}`;
status.result = 'skip';
}
return status;
}
else {
status.result = 'continue';
return status;
}
}
catch (err) {
if (err.code === 'ENOENT') {
throw new Error(`No such file or directory ${err.path}`); // Re-throw error if .forceignore does not exist
}
else if (!isToBreakBuildIfEmpty) {
status.message = `Something wrong with the path provided ${directoryToCheck}, but skipping, The exception is ${err}`;
status.result = 'skip';
return status;
}
else
throw err;
}
}
static isEmptyFolder(projectDirectory, sourceDirectory) {
let dirToCheck;
if (projectDirectory != null) {
dirToCheck = path_1.default.join(projectDirectory, sourceDirectory);
}
else {
dirToCheck = sourceDirectory;
}
let files = FileSystem_1.default.readdirRecursive(dirToCheck, false, false);
// Include source directory in filepaths, as it can be a pattern in forceignore
files = files.map((file) => path_1.default.join(sourceDirectory, file));
let forceignorePath;
if (projectDirectory != null)
forceignorePath = path_1.default.join(projectDirectory, '.forceignore');
else
forceignorePath = path_1.default.join(process.cwd(), '.forceignore');
// Ignore files that are listed in .forceignore
files = (0, ignore_1.default)()
.add((0, fs_1.readFileSync)(forceignorePath).toString()) // Add ignore patterns from '.forceignore'.
.filter(files);
if (files == null || files.length === 0)
return true;
else
return false;
}
}
exports.default = PackageEmptyChecker;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFja2FnZUVtcHR5Q2hlY2tlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3BhY2thZ2UvdmFsaWRhdG9ycy9QYWNrYWdlRW1wdHlDaGVja2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0RBQXdCO0FBQ3hCLDJCQUE4QztBQUM5Qyx3RUFBZ0Q7QUFDaEQsb0RBQTRCO0FBRTVCLE1BQXFCLG1CQUFtQjtJQUM3QixNQUFNLENBQUMsK0JBQStCLENBQ3pDLFVBQWtCLEVBQ2xCLGVBQXVCLEVBQ3ZCLHFCQUE4QjtRQUs5QixJQUFJLGdCQUFnQixDQUFDO1FBQ3JCLElBQUksTUFBTSxHQUF3QztZQUM5QyxPQUFPLEVBQUUsRUFBRTtZQUNYLE1BQU0sRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUVGLElBQUksVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3JCLGdCQUFnQixHQUFHLGNBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzlELENBQUM7O1lBQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO1FBRTFDLElBQUksQ0FBQztZQUNELElBQUksQ0FBQyxJQUFBLGVBQVUsRUFBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQ2hDLG1DQUFtQztnQkFDbkMsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO29CQUN4QixNQUFNLENBQUMsT0FBTyxHQUFHLGlFQUFpRSxxQkFBcUIsRUFBRSxDQUFDO29CQUMxRyxNQUFNLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztnQkFDNUIsQ0FBQztxQkFBTSxDQUFDO29CQUNKLE1BQU0sQ0FBQyxPQUFPLEdBQUcsZ0VBQWdFLHFCQUFxQixFQUFFLENBQUM7b0JBQ3pHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO2dCQUMzQixDQUFDO2dCQUNELE9BQU8sTUFBTSxDQUFDO1lBQ2xCLENBQUM7aUJBQU0sSUFBSSxtQkFBbUIs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