@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
84 lines • 7.76 kB
JavaScript
;
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 TransitiveDependencyResolver_1 = __importDefault(require("../../core/package/dependencies/TransitiveDependencyResolver"));
const sfp_logger_1 = require("@flxbl-io/sfp-logger");
const sfp_logger_2 = __importStar(require("@flxbl-io/sfp-logger"));
const lodash_1 = __importDefault(require("lodash"));
const Table = require('cli-table');
const UserDefinedExternalDependency_1 = __importDefault(require("../../core/project/UserDefinedExternalDependency"));
class ShrinkImpl {
constructor(connToDevHub, logger) {
this.connToDevHub = connToDevHub;
this.logger = logger;
}
async shrinkDependencies(sfdxProjectConfig) {
sfp_logger_2.default.log('Shrinking Project Dependencies...', sfp_logger_2.LoggerLevel.INFO, this.logger);
this.updatedprojectConfig = lodash_1.default.cloneDeep(sfdxProjectConfig);
const transitiveDependencyResolver = new TransitiveDependencyResolver_1.default(sfdxProjectConfig);
this.dependencyMap = await transitiveDependencyResolver.resolveTransitiveDependencies();
await this.resolveAndShrinkDependencies(this.dependencyMap);
this.updatedprojectConfig = new UserDefinedExternalDependency_1.default().addDependencyEntries(this.updatedprojectConfig, this.connToDevHub);
return this.updatedprojectConfig;
}
async resolveAndShrinkDependencies(dependencyMap) {
let pkgs = [...dependencyMap.keys()];
for (let pkg of pkgs) {
sfp_logger_2.default.log((0, sfp_logger_1.COLOR_HEADER)(`cleaning up dependencies for package:`) + (0, sfp_logger_1.COLOR_KEY_MESSAGE)(pkg), sfp_logger_2.LoggerLevel.TRACE, this.logger);
let dependenencies = dependencyMap.get(pkg);
let updatedDependencies = lodash_1.default.cloneDeep(dependenencies);
for (let dependency of dependencyMap.get(pkg)) {
if (dependencyMap.get(dependency.package)) {
sfp_logger_2.default.log(`Shrinking ${dependencyMap.get(dependency.package).length} dependencies from package ${dependency.package}`, sfp_logger_2.LoggerLevel.TRACE, this.logger);
for (let temp of dependencyMap.get(dependency.package)) {
for (let i = 0; i < updatedDependencies.length; i++) {
if (updatedDependencies[i].package == temp.package) {
updatedDependencies.splice(i, 1);
break;
}
}
}
}
else {
sfp_logger_2.default.log(`no dependency found for ${dependency.package} in the map`, sfp_logger_2.LoggerLevel.TRACE, this.logger);
}
}
//Update project config
await this.updateProjectConfig(pkg, updatedDependencies);
}
}
async updateProjectConfig(packageName, fixedDependencies) {
this.updatedprojectConfig.packageDirectories.map((pkg) => {
if (pkg.package == packageName) {
return Object.assign(pkg, { dependencies: fixedDependencies });
}
});
}
}
exports.default = ShrinkImpl;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hyaW5rSW1wbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbXBsL2RlcGVuZGVuY3kvU2hyaW5rSW1wbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0lBQXdHO0FBQ3hHLHFEQUFtRztBQUNuRyxtRUFBc0U7QUFDdEUsb0RBQXVCO0FBRXZCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNuQyxxSEFBNkY7QUFFN0YsTUFBcUIsVUFBVTtJQUszQixZQUFvQixZQUF1QixFQUFVLE1BQWU7UUFBaEQsaUJBQVksR0FBWixZQUFZLENBQVc7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFTO0lBQUcsQ0FBQztJQUNqRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsaUJBQXNCO1FBQ2xELG9CQUFTLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxFQUFFLHdCQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVsRixJQUFJLENBQUMsb0JBQW9CLEdBQUcsZ0JBQUMsQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUUzRCxNQUFNLDRCQUE0QixHQUFHLElBQUksc0NBQTRCLENBQ2pFLGlCQUFpQixDQUNwQixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLDRCQUE0QixDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFDeEYsTUFBTSxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLHVDQUE2QixFQUFFLENBQUMsb0JBQW9CLENBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVySSxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBRU8sS0FB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