UNPKG

@flxbl-io/sfp

Version:

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

126 lines 12.5 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 }); exports.CreatePackage = void 0; const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger")); const SFPStatsSender_1 = __importDefault(require("../../stats/SFPStatsSender")); const SfpPackage_1 = require("../SfpPackage"); class CreatePackage { constructor(projectDirectory, sfpPackage, packageCreationParams, logger, params) { this.projectDirectory = projectDirectory; this.sfpPackage = sfpPackage; this.packageCreationParams = packageCreationParams; this.logger = logger; this.params = params; //Initialize Params if (this.params == null) this.params = {}; } async exec() { //Capture Start TimegetSFDXProjectConfig this.startTime = Date.now(); //Print Header this.printHeader(); //Check if the package is empty await this.checkWhetherProvidedPackageIsEmpty(this.sfpPackage.packageDescriptor.path); //Call lifecycle commands await this.preCreatePackage(this.sfpPackage); await this.createPackage(this.sfpPackage); await this.postCreatePackage(this.sfpPackage); //Add addtional descriptors available this.writeDeploymentStepsToArtifact(this.sfpPackage); //Send Metrics to Logging system this.sendMetricsWhenSuccessfullyCreated(); return this.sfpPackage; } sendMetricsWhenSuccessfullyCreated() { let elapsedTime = Date.now() - this.startTime; this.sfpPackage.creation_details = { creation_time: elapsedTime, timestamp: Date.now(), }; if (this.getTypeOfPackage() === SfpPackage_1.PackageType.Source || this.getTypeOfPackage() === SfpPackage_1.PackageType.Unlocked) SFPStatsSender_1.default.logGauge('package.metadatacount', this.sfpPackage.metadataCount, { package: this.sfpPackage.package_name, type: this.sfpPackage.package_type, }); SFPStatsSender_1.default.logCount('package.created', { package: this.sfpPackage.package_name, type: this.sfpPackage.package_type, is_dependency_validated: String(this.sfpPackage.isDependencyValidated), }); SFPStatsSender_1.default.logElapsedTime('package.elapsed.time', this.sfpPackage.creation_details.creation_time, { package: this.sfpPackage.package_name, type: this.sfpPackage.package_type, is_dependency_validated: String(this.sfpPackage.isDependencyValidated), }); SFPStatsSender_1.default.logElapsedTime('package.creation.elapsed_time', this.sfpPackage.creation_details.creation_time, { package: this.sfpPackage.package_name, type: this.sfpPackage.package_type, is_dependency_validated: String(this.sfpPackage.isDependencyValidated), }); } writeDeploymentStepsToArtifact(packageDescriptor) { if (packageDescriptor.assignPermSetsPreDeployment) { if (packageDescriptor.assignPermSetsPreDeployment instanceof Array) this.sfpPackage.assignPermSetsPreDeployment = packageDescriptor.assignPermSetsPreDeployment; else throw new Error("Property 'assignPermSetsPreDeployment' must be of type array"); } if (packageDescriptor.assignPermSetsPostDeployment) { if (packageDescriptor.assignPermSetsPostDeployment instanceof Array) this.sfpPackage.assignPermSetsPostDeployment = packageDescriptor.assignPermSetsPostDeployment; else throw new Error("Property 'assignPermSetsPostDeployment' must be of type array"); } } async checkWhetherProvidedPackageIsEmpty(packageDirectory) { if (await this.isEmptyPackage(this.projectDirectory, packageDirectory)) { if (this.packageCreationParams.breakBuildIfEmpty) throw new Error(`Package directory ${packageDirectory} is empty`); else this.printEmptyArtifactWarning(); } } printEmptyArtifactWarning() { sfp_logger_1.default.printHeaderLine(`WARNING! Empty aritfact encountered`, sfp_logger_1.COLOR_WARNING, sfp_logger_1.LoggerLevel.INFO, this.logger); sfp_logger_1.default.log('Either this folder is empty or the application of .forceignore results in an empty folder', sfp_logger_1.LoggerLevel.INFO, this.logger); sfp_logger_1.default.log('Proceeding to create an empty artifact', sfp_logger_1.LoggerLevel.INFO, this.logger); sfp_logger_1.default.printHeaderLine('', sfp_logger_1.COLOR_WARNING, sfp_logger_1.LoggerLevel.INFO, this.logger); } printHeader() { sfp_logger_1.default.log((0, sfp_logger_1.COLOR_HEADER)(`command: ${(0, sfp_logger_1.COLOR_KEY_MESSAGE)(`create package`)}`), sfp_logger_1.LoggerLevel.INFO, this.logger); sfp_logger_1.default.log((0, sfp_logger_1.COLOR_HEADER)(`package name: ${(0, sfp_logger_1.COLOR_KEY_MESSAGE)(`${this.sfpPackage.packageName}`)}`), sfp_logger_1.LoggerLevel.INFO, this.logger); sfp_logger_1.default.log((0, sfp_logger_1.COLOR_HEADER)(`package type: ${(0, sfp_logger_1.COLOR_KEY_MESSAGE)(`${this.getTypeOfPackage()}`)}`), sfp_logger_1.LoggerLevel.INFO, this.logger); sfp_logger_1.default.log((0, sfp_logger_1.COLOR_HEADER)(`package directory: ${(0, sfp_logger_1.COLOR_KEY_MESSAGE)(`${this.sfpPackage.packageDescriptor.path}`)}`), sfp_logger_1.LoggerLevel.INFO, this.logger); this.printAdditionalPackageSpecificHeaders(); sfp_logger_1.default.printHeaderLine('', sfp_logger_1.COLOR_HEADER, sfp_logger_1.LoggerLevel.INFO, this.logger); } } exports.CreatePackage = CreatePackage; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ3JlYXRlUGFja2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb3JlL3BhY2thZ2UvcGFja2FnZUNyZWF0b3JzL0NyZWF0ZVBhY2thZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtRUFBc0g7QUFDdEgsZ0ZBQXdEO0FBQ3hELDhDQUEwRTtBQUcxRSxNQUFzQixhQUFhO0lBRy9CLFlBQ2MsZ0JBQXdCLEVBQ3hCLFVBQXNCLEVBQ3RCLHFCQUE2QyxFQUM3QyxNQUFlLEVBQ2YsTUFBeUI7UUFKekIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFRO1FBQ3hCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF3QjtRQUM3QyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2YsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFFbkMsbUJBQW1CO1FBQ25CLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxJQUFJO1lBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJO1FBQ2Isd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRTVCLGNBQWM7UUFDZCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbkIsK0JBQStCO1FBQy9CLE1BQU0sSUFBSSxDQUFDLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEYseUJBQXlCO1FBQ3pCLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sSUFBSSxD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