UNPKG

@flxbl-io/sfp

Version:

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

86 lines 6.46 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 path_1 = __importDefault(require("path")); const fs = __importStar(require("fs-extra")); const yaml = __importStar(require("js-yaml")); const source_deploy_retrieve_1 = require("@salesforce/source-deploy-retrieve"); const SfpPackage_1 = require("../SfpPackage"); const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger")); class FHTAnalyser { getName() { return "Field History Tracking Analyzer"; } async analyze(sfpPackage, componentSet, logger) { try { let fhtFields = {}; //read the yaml let fhtYamlPath = path_1.default.join(sfpPackage.workingDirectory, sfpPackage.projectDirectory, sfpPackage.packageDirectory, '/postDeploy/history-tracking.yml'); //read components mentioned in yaml if (fs.existsSync(fhtYamlPath)) { //convert yaml to json fhtFields = yaml.load(fs.readFileSync(fhtYamlPath, { encoding: 'utf-8' })); } //filter the components in the package fhtFields = await this.addFieldsFromComponentSet(fhtFields, componentSet); if (Object.keys(fhtFields).length > 0) { sfpPackage['isFHTFieldFound'] = true; sfpPackage['fhtFields'] = fhtFields; } } catch (error) { //Ignore error for now sfp_logger_1.default.log(`Unable to process Field History Tracking due to ${error.message}`, sfp_logger_1.LoggerLevel.TRACE, logger); } return sfpPackage; } async addFieldsFromComponentSet(fhtFields, componentSet) { let sourceComponents = componentSet.getSourceComponents().toArray(); for (const sourceComponent of sourceComponents) { if (sourceComponent.type.name !== source_deploy_retrieve_1.registry.types.customobject.children.types.customfield.name) { continue; } let customField = sourceComponent.parseXmlSync().CustomField; if (customField['trackHistory'] == 'true') { let objName = sourceComponent.parent.fullName; if (!fhtFields[objName]) fhtFields[objName] = []; fhtFields[objName].push(sourceComponent.name); } } return fhtFields; } async isEnabled(sfpPackage, logger) { if (sfpPackage.packageType != SfpPackage_1.PackageType.Data) return true; else return false; } } exports.default = FHTAnalyser; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRkhUQW5hbHl6ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS9wYWNrYWdlL2FuYWx5c2VyL0ZIVEFuYWx5emVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnREFBd0I7QUFDeEIsNkNBQStCO0FBQy9CLDhDQUFnQztBQUNoQywrRUFBNEU7QUFDNUUsOENBQXdEO0FBRXhELG1FQUFzRTtBQUV0RSxNQUFxQixXQUFXO0lBRXRCLE9BQU87UUFDVixPQUFPLGlDQUFpQyxDQUFBO0lBQzNDLENBQUM7SUFJTSxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQXNCLEVBQUUsWUFBeUIsRUFBRSxNQUFhO1FBQ2pGLElBQUksQ0FBQztZQUVELElBQUksU0FBUyxHQUFxQyxFQUFFLENBQUM7WUFFckQsZUFBZTtZQUNmLElBQUksV0FBVyxHQUFHLGNBQUksQ0FBQyxJQUFJLENBQ3ZCLFVBQVUsQ0FBQyxnQkFBZ0IsRUFDM0IsVUFBVSxDQUFDLGdCQUFnQixFQUMzQixVQUFVLENBQUMsZ0JBQWdCLEVBQzNCLGtDQUFrQyxDQUNyQyxDQUFDO1lBRUYsbUNBQW1DO1lBQ25DLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUM3QixzQkFBc0I7Z0JBQ3RCLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQThCLENBQUM7WUFDNUcsQ0FBQztZQUdELHNDQUFzQztZQUN0QyxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMseUJBQXlCLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBRTFFLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDckMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLFNBQVMsQ0FBQztZQUN4QyxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixzQkFBc0I7WUFDdEIsb0JBQVMsQ0FBQyxHQUFHLENBQUMsbURBQW1ELEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBQyx3QkFBVyxDQUFDLEtBQUssRUFBQyxNQUFNLENBQUMsQ0FBQztRQUMvRyxDQUFDO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVPLEtBQUssQ0FBQyx5QkFBeUIsQ0FDbkMsU0FBMkMsRUFDM0MsWUFBMEI7UUFFMUIsSUFBSSxnQkFBZ0IsR0FBRyxZQUFZLENBQUMsbUJBQW1CLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVwRSxLQUFLLE1BQU0sZUFBZSxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDN0MsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxpQ0FBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQzVGLFNBQVM7WUFDYixDQUFDO1lBRUQsSUFBSSxXQUFXLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDLFdBQVcsQ0FBQztZQUM3RCxJQUFJLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxPQUFPLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQzlDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO29CQUFFLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2pELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xELENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVNLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBc0IsRUFBQyxNQUFhO1FBQ3ZELElBQUksVUFBVSxDQUFDLFdBQVcsSUFBSSx3QkFBVyxDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQzs7WUFDdkQsT0FBTyxLQUFLLENBQUM7SUFDdEIsQ0FBQztDQUNKO0FBbkVELDhCQW1FQyJ9