UNPKG

@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
"use strict"; 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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