UNPKG

@flxbl-io/sfp

Version:

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

60 lines 4.84 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const UndirectedGraph_1 = __importDefault(require("./UndirectedGraph")); const ProjectConfig_1 = __importDefault(require("../../core/project/ProjectConfig")); /** * Class for the manipulation of package build collections */ class BuildCollections { constructor(projectDirectory) { this.createGraphOfBuildCollections(projectDirectory); } get graph() { return this._graph; } /** * Constructs graph representation of collections * @param projectDirectory */ createGraphOfBuildCollections(projectDirectory) { this._graph = new UndirectedGraph_1.default(); let projectConfig = ProjectConfig_1.default.getSFDXProjectConfig(projectDirectory); for (let pkg of projectConfig.packageDirectories) { if (pkg.buildCollection) { if (pkg.buildCollection instanceof Array) { if (!this._graph.adjacencyList[pkg.package]) this._graph.addVertex(pkg.package); pkg.buildCollection.forEach((packageInCollection) => { // Create vertex for package in collection if it doesn't exist yet if (!this._graph.adjacencyList[packageInCollection]) { // Verify that the package in collection is a valid package, before adding to adj. list if (projectConfig.packageDirectories.find((elem) => elem.package === packageInCollection)) { this._graph.addVertex(packageInCollection); } else throw new Error(`Package '${packageInCollection}' in collection ${pkg.buildCollection} is not a valid package`); } this._graph.addEdge(pkg.package, packageInCollection); }); } else throw new Error(`Property 'buildCollection' must be of type Array. Received ${pkg.buildCollection}`); } } } /** * Returns list of packages contained in the same collection as the package * @param pkg */ listPackagesInCollection(pkg) { return this._graph.dfs(pkg); } isPackageInACollection(pkg) { return this._graph.adjacencyList[pkg] ? true : false; } } exports.default = BuildCollections; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQnVpbGRDb2xsZWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbXBsL3BhcmFsbGVsQnVpbGRlci9CdWlsZENvbGxlY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0VBQWdEO0FBQ2hELHFGQUE2RDtBQUU3RDs7R0FFRztBQUNILE1BQXFCLGdCQUFnQjtJQUlqQyxZQUFZLGdCQUF3QjtRQUNoQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSyw2QkFBNkIsQ0FBQyxnQkFBd0I7UUFDMUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLHlCQUFlLEVBQUUsQ0FBQztRQUVwQyxJQUFJLGFBQWEsR0FBRyx1QkFBYSxDQUFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekUsS0FBSyxJQUFJLEdBQUcsSUFBSSxhQUFhLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUMvQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxHQUFHLENBQUMsZUFBZSxZQUFZLEtBQUssRUFBRSxDQUFDO29CQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQzt3QkFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBRWhGLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsbUJBQW1CLEVBQUUsRUFBRTt3QkFDaEQsa0VBQWtFO3dCQUNsRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsRUFBRSxDQUFDOzRCQUNsRCx1RkFBdUY7NEJBQ3ZGLElBQUksYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxtQkFBbUIsQ0FBQyxFQUFFLENBQUM7Z0NBQ3hGLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7NEJBQy9DLENBQUM7O2dDQUNHLE1BQU0sSUFBSSxLQUFLLENBQ1gsWUFBWSxtQkFBbUIsbUJBQW1CLEdBQUcsQ0FBQyxlQUFlLHlCQUF5QixDQUNqRyxDQUFDO3dCQUNWLENBQUM7d0JBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO29CQUMxRCxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDOztvQkFDRyxNQUFNLElBQUksS0FBSyxDQUNYLDhEQUE4RCxHQUFHLENBQUMsZUFBZSxFQUFFLENBQ3RGLENBQUM7WUFDVixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0IsQ0FBQyxHQUFXO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELHNCQUFzQixDQUFDLEdBQVc7UUFDOUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDekQsQ0FBQztDQUNKO0FBMURELG1DQTBEQyJ9