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