UNPKG

@flxbl-io/sfp

Version:

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

89 lines 8.61 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 fs = require('fs-extra'); const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger")); const SFDMURunImpl_1 = __importDefault(require("../../sfdmuwrapper/SFDMURunImpl")); const VlocityPackDeployImpl_1 = __importDefault(require("../../vlocitywrapper/VlocityPackDeployImpl")); const path = require('path'); const OrgDetailsFetcher_1 = __importDefault(require("../../org/OrgDetailsFetcher")); const InstallPackage_1 = require("./InstallPackage"); class InstallDataPackageImpl extends InstallPackage_1.InstallPackage { constructor(sfpPackage, targetOrg, logger, options) { super(sfpPackage, targetOrg, logger, options); } async install() { try { //Fetch the sfdxcommand executor for the type let dataPackageDeployer = await this.getSFDXCommand(this.sfpPackage.sourceDir, this.packageDirectory); sfp_logger_1.default.log(`Executing installation command: ${dataPackageDeployer.getGeneratedSFDXCommandWithParams()}`, sfp_logger_1.LoggerLevel.INFO, this.logger); let result = await dataPackageDeployer.exec(false); sfp_logger_1.default.log(result, sfp_logger_1.LoggerLevel.INFO, this.logger); } catch (error) { let csvIssuesReportFilepath = path.join(this.sfpPackage.sourceDir, this.packageDirectory, `CSVIssuesReport.csv`); if (fs.existsSync(csvIssuesReportFilepath)) { sfp_logger_1.default.log(`\n---------------------WARNING: SFDMU detected CSV issues, verify the following files -------------------------------`, sfp_logger_1.LoggerLevel.WARN, this.logger); sfp_logger_1.default.log(fs.readFileSync(csvIssuesReportFilepath, 'utf8'), sfp_logger_1.LoggerLevel.INFO, this.logger); } throw error; } } async getSFDXCommand(sourceDirectory, packageDirectory) { //Determine package type let packageType = this.determinePackageType(path.join(sourceDirectory, packageDirectory)); //Pick the type of SFDX command to use let dataPackageDeployer; if (packageType === 'sfdmu') { let orgDomainUrl = await new OrgDetailsFetcher_1.default(this.sfpOrg.getUsername()).getOrgDomainUrl(); dataPackageDeployer = new SFDMURunImpl_1.default(sourceDirectory, this.sfpOrg.getUsername(), orgDomainUrl, packageDirectory, this.logger, sfp_logger_1.LoggerLevel.INFO); } else if (packageType === 'vlocity') { dataPackageDeployer = new VlocityPackDeployImpl_1.default(this.sfpPackage.sourceDir, this.sfpOrg.getUsername(), packageDirectory, null, null); } else { throw new Error('Unsupported package type'); } return dataPackageDeployer; } determinePackageType(packageDirectory) { if (fs.pathExistsSync(path.join(packageDirectory, 'export.json'))) { 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); return 'sfdmu'; } else if (fs.pathExistsSync(path.join(packageDirectory, 'VlocityComponents.yaml'))) { 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); return 'vlocity'; } 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 = InstallDataPackageImpl; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5zdGFsbERhdGFQYWNrYWdlSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3BhY2thZ2UvcGFja2FnZUluc3RhbGxlcnMvSW5zdGFsbERhdGFQYWNrYWdlSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQy9CLG1FQUFzRTtBQUN0RSxtRkFBMkQ7QUFDM0QsdUdBQStFO0FBRS9FLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM3QixvRkFBNEQ7QUFDNUQscURBQWlGO0FBSWpGLE1BQXFCLHNCQUF1QixTQUFRLCtCQUFjO0lBQzlELFlBQ0ksVUFBc0IsRUFDdEIsU0FBZ0IsRUFDaEIsTUFBYyxFQUNkLE9BQXNDO1FBRXRDLEtBQUssQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQU87UUFDaEIsSUFBSSxDQUFDO1lBQ0QsNkNBQTZDO1lBQzdDLElBQUksbUJBQW1CLEdBQWdCLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FDNUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FDeEIsQ0FBQztZQUVGLG9CQUFTLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxtQkFBbUIsQ0FBQyxpQ0FBaUMsRUFBRSxFQUFFLEVBQUMsd0JBQVcsQ0FBQyxJQUFJLEVBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3pJLElBQUksTUFBTSxHQUFHLE1BQU0sbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRW5ELG9CQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSx3QkFBVyxDQUFDLElBQUksRUFB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