@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
JavaScript
;
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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