UNPKG

@flxbl-io/sfp

Version:

sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model

94 lines 7.65 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger")); const path_1 = __importDefault(require("path")); const FileSystem_1 = __importDefault(require("../../utils/FileSystem")); const CreatePackage_1 = require("./CreatePackage"); const SfpPackage_1 = require("../SfpPackage"); const SFDMU_CONFIG = 'export.json'; const VLOCITY_CONFIG = 'VlocityComponents.yaml'; class CreateDataPackageImpl extends CreatePackage_1.CreatePackage { constructor(projectDirectory, sfpPackage, packageCreationParams, logger, params) { super(projectDirectory, sfpPackage, packageCreationParams, logger, params); this.projectDirectory = projectDirectory; this.sfpPackage = sfpPackage; this.packageCreationParams = packageCreationParams; this.logger = logger; this.params = params; } getTypeOfPackage() { return SfpPackage_1.PackageType.Data; } isEmptyPackage(projectDirectory, packageDirectory) { let files = FileSystem_1.default.readdirRecursive(path_1.default.join(projectDirectory, packageDirectory)); let hasExportJson = files.find((file) => path_1.default.basename(file) === 'export.json'); let hasCsvFile = files.find((file) => path_1.default.extname(file) === '.csv'); let hasYAMLFile = files.find((file) => path_1.default.extname(file) === '.yaml'); //check for vlocity config if (hasYAMLFile) return false; if (!hasExportJson || !hasCsvFile) return true; else return false; } preCreatePackage(sfpPackage) { this.validateDataPackage(sfpPackage.resolvedPackageDirectory); } createPackage(sfpPackage) { //Do Nothing, as no external calls or processing is required } postCreatePackage(sfpPackage) { } printAdditionalPackageSpecificHeaders() { } // Validate type of data package and existence of the correct configuration files validateDataPackage(packageDirectory) { const files = FileSystem_1.default.readdirRecursive(packageDirectory); let isSfdmu; let isVlocity; for (const file of files) { if (path_1.default.basename(file) === SFDMU_CONFIG) isSfdmu = true; if (path_1.default.basename(file) === VLOCITY_CONFIG) isVlocity = true; } if (isSfdmu && isVlocity) { throw new Error(`Data package '${this.sfpPackage.packageName}' contains both SFDMU & Vlocity configuration`); } else if (isSfdmu) { sfp_logger_1.default.log(`Found export.json in ${packageDirectory}.. Utilizing it as data package and will be deployed using sfdmu`, sfp_logger_1.LoggerLevel.INFO, this.logger); } else if (isVlocity) { sfp_logger_1.default.log(`Found VlocityComponents.yaml in ${packageDirectory}.. Utilizing it as data package and will be deployed using vbt`, sfp_logger_1.LoggerLevel.INFO, this.logger); } else { throw new Error(`Could not find export.json or VlocityComponents.yaml in ${packageDirectory}. sfp only support vlocity or sfdmu based data packages`); } } } exports.default = CreateDataPackageImpl; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlRGF0YVBhY2thZ2VJbXBsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvcmUvcGFja2FnZS9wYWNrYWdlQ3JlYXRvcnMvQ3JlYXRlRGF0YVBhY2thZ2VJbXBsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtRUFBc0U7QUFDdEUsZ0RBQXdCO0FBQ3hCLHdFQUFnRDtBQUNoRCxtREFBZ0Q7QUFDaEQsOENBQTBFO0FBRzFFLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQztBQUNuQyxNQUFNLGNBQWMsR0FBRyx3QkFBd0IsQ0FBQztBQUVoRCxNQUFxQixxQkFBc0IsU0FBUSw2QkFBYTtJQUM1RCxZQUNjLGdCQUF3QixFQUN4QixVQUFzQixFQUN0QixxQkFBNEMsRUFDNUMsTUFBZSxFQUNmLE1BQXlCO1FBRW5DLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBTmpFLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBUTtRQUN4QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUNmLFdBQU0sR0FBTixNQUFNLENBQW1CO0lBR3ZDLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixPQUFPLHdCQUFXLENBQUMsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFFRCxjQUFjLENBQUMsZ0JBQXdCLEVBQUUsZ0JBQXdCO1FBQzdELElBQUksS0FBSyxHQUFhLG9CQUFVLENBQUMsZ0JBQWdCLENBQUMsY0FBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFFakcsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsY0FBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxhQUFhLENBQUMsQ0FBQztRQUVoRixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1FBRXJFLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGNBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQywwQkFBMEI7UUFFbEcsSUFBRyxXQUFXO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFFN0IsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLElBQUksQ0FBQzs7WUFDMUMsT0FBTyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQVU7UUFDdkIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxhQUFhLENBQUMsVUFBc0I7UUFDaEMsNERBQTREO0lBQ2hFLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxVQUFzQixJQUFHLENBQUM7SUFFNUMscUNBQXFDLEtBQUksQ0FBQztJQUUxQyxpRkFBaUY7SUFDekUsbUJBQW1CLENBQUMsZ0JBQXdCO1FBQ2hELE1BQU0sS0FBSyxHQUFHLG9CQUFVLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM1RCxJQUFJLE9BQWdCLENBQUM7UUFDckIsSUFBSSxTQUFrQixDQUFDO1FBRXZCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDdkIsSUFBSSxjQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLFlBQVk7Z0JBQUUsT0FBTyxHQUFHLElBQUksQ0FBQztZQUN6RCxJQUFJLGNBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssY0FBYztnQkFBRSxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pFLENBQUM7UUFFRCxJQUFJLE9BQU8sSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUNYLGlCQUFpQixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsK0NBQStDLENBQzlGLENBQUM7UUFDTixDQUFDO2FBQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNqQixvQkFBUyxDQUFDLEdBQUcsQ0FDVCx3QkFBd0IsZ0JBQWdCLGtFQUFrRSxFQUMxRyx3QkFBVyxDQUFDLElBQUksRUFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FDZCxDQUFDO1FBQ04sQ0FBQzthQUFNLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbkIsb0JBQVMsQ0FBQyxHQUFHLENBQ1QsbUNBQW1DLGdCQUFnQixnRUFBZ0UsRUFDbkgsd0JBQVcsQ0FBQyxJQUFJLEVBQ2hCLElBQUksQ0FBQyxNQUFNLENBQ2QsQ0FBQztRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osTUFBTSxJQUFJLEtBQUssQ0FDWCwyREFBMkQsZ0JBQWdCLHlEQUF5RCxDQUN2SSxDQUFDO1FBQ04sQ0FBQztJQUNMLENBQUM7Q0FDSjtBQTNFRCx3Q0EyRUMifQ==