UNPKG

@flxbl-io/sfp

Version:

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

134 lines 10.8 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 PackageDiffImpl_1 = __importDefault(require("../../core/package/diff/PackageDiffImpl")); const ProjectConfig_1 = __importDefault(require("../../core/project/ProjectConfig")); const SfpPackage_1 = require("../../core/package/SfpPackage"); const fs = __importStar(require("fs-extra")); const BuildCollections_1 = __importDefault(require("../parallelBuilder/BuildCollections")); class ImpactedPackageResolver { constructor(props, logger) { this.props = props; this.logger = logger; } async getImpactedPackages() { let projectConfig = ProjectConfig_1.default.getSFDXProjectConfig(this.props.projectDirectory); let packagesToBeBuilt = this.getPackagesToBeBuilt(this.props.projectDirectory); let packagesToBeBuiltWithReasons = await this.filterPackagesToBeBuiltByChanged(this.props.projectDirectory, projectConfig, packagesToBeBuilt); return packagesToBeBuiltWithReasons; } /** * Get the file path of the forceignore for current stage, from project config. * Returns null if a forceignore path is not defined in the project config for the current stage. * * @param projectConfig * @param currentStage */ getPathToForceIgnoreForCurrentStage(projectConfig, currentStage) { let stageForceIgnorePath; let ignoreFiles = projectConfig.plugins?.sfp?.ignoreFiles; if (ignoreFiles) { Object.keys(ignoreFiles).forEach((key) => { if (key.toLowerCase() == currentStage) { stageForceIgnorePath = ignoreFiles[key]; } }); } if (stageForceIgnorePath) { if (fs.existsSync(stageForceIgnorePath)) { return stageForceIgnorePath; } else throw new Error(`${stageForceIgnorePath} forceignore file does not exist`); } else return null; } async filterPackagesToBeBuiltByChanged(projectDirectory, projectConfig, allPackagesInRepo) { let packagesToBeBuilt = new Map(); let buildCollections = new BuildCollections_1.default(projectDirectory); if (this.props.diffOptions) this.props.diffOptions.pathToReplacementForceIgnore = this.getPathToForceIgnoreForCurrentStage(projectConfig, this.props.currentStage); for await (const pkg of allPackagesInRepo) { let diffImpl = new PackageDiffImpl_1.default(this.logger, pkg, this.props.projectDirectory, this.props.diffOptions); let packageDiffCheck = await diffImpl.exec(); if (packageDiffCheck.isToBeBuilt) { packagesToBeBuilt.set(pkg, { reason: packageDiffCheck.reason, tag: packageDiffCheck.tag, }); //Add Bundles if (buildCollections.isPackageInACollection(pkg)) { buildCollections.listPackagesInCollection(pkg).forEach((packageInCollection) => { if (!packagesToBeBuilt.has(packageInCollection)) { packagesToBeBuilt.set(packageInCollection, { reason: 'Part of a build collection', }); } }); } } } return packagesToBeBuilt; } getPackagesToBeBuilt(projectDirectory, includeOnlyPackages) { let projectConfig = ProjectConfig_1.default.getSFDXProjectConfig(projectDirectory); let sfdxpackages = []; let packageDescriptors = projectConfig['packageDirectories'].filter((pkg) => { if (pkg.ignoreOnStage?.find((stage) => { stage = stage.toLowerCase(); return stage === this.props.currentStage; })) return false; else return true; }); //Filter Packages if (includeOnlyPackages) { packageDescriptors = packageDescriptors.filter((pkg) => { if (includeOnlyPackages.find((includedPkg) => { return includedPkg == pkg.package; })) return true; else return false; }); } // Ignore aliasfied packages on stages fix #1289 packageDescriptors = packageDescriptors.filter((pkg) => { return !(this.props.currentStage === 'prepare' && pkg.aliasfy && pkg.type !== SfpPackage_1.PackageType.Data); }); for (const pkg of packageDescriptors) { if (pkg.package && pkg.versionNumber) sfdxpackages.push(pkg['package']); } return sfdxpackages; } } exports.default = ImpactedPackageResolver; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1wYWN0ZWRQYWNrYWdlc1Jlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ltcGwvaW1wYWN0L0ltcGFjdGVkUGFja2FnZXNSZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOEZBQThGO0FBRTlGLHFGQUE2RDtBQUM3RCw4REFBNEQ7QUFDNUQsNkNBQStCO0FBRS9CLDJGQUFtRTtBQVluRSxNQUFxQix1QkFBdUI7SUFHeEMsWUFBb0IsS0FBMkIsRUFBVSxNQUFjO1FBQW5ELFVBQUssR0FBTCxLQUFLLENBQXNCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUN2RSxDQUFDO0lBRUQsS0FBSyxDQUFDLG1CQUFtQjtRQUNyQixJQUFJLGFBQWEsR0FBRyx1QkFBYSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUNwRixJQUFJLGlCQUFpQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDL0UsSUFBSSw0QkFBNEIsR0FBRyxNQUFNLElBQUksQ0FBQyxnQ0FBZ0MsQ0FDMUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFDM0IsYUFBYSxFQUNiLGlCQUFpQixDQUNwQixDQUFDO1FBRUYsT0FBTyw0QkFBNEIsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssbUNBQW1DLENBQUMsYUFBa0IsRUFBRSxZQUFtQjtRQUMvRSxJQUFJLG9CQUE0QixDQUFDO1FBRWpDLElBQUksV0FBVyxHQUErQixhQUFhLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLENBQUM7UUFDdEYsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLENB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