@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
66 lines • 6.57 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const sfp_logger_1 = __importDefault(require("@flxbl-io/sfp-logger"));
const core_1 = require("@salesforce/core");
const lodash_1 = __importDefault(require("lodash"));
const ExternalPackage2DependencyResolver_1 = __importDefault(require("../package/dependencies/ExternalPackage2DependencyResolver"));
/**
* Functions to deal with externalDependencyMap supplied by the user
* to aid in resolving transitive dependencies
*/
class UserDefinedExternalDependencyMap {
fetchDependencyEntries(projectConfig) {
if (projectConfig.plugins?.sfp?.externalDependencyMap) {
let externalDependencyMap = projectConfig.plugins.sfp.externalDependencyMap;
sfp_logger_1.default.log(JSON.stringify(externalDependencyMap), core_1.LoggerLevel.DEBUG);
return externalDependencyMap;
}
else
return {};
}
async addDependencyEntries(projectConfig, connToDevHub) {
let externalDependencies = [];
let updatedProjectConfig = await lodash_1.default.cloneDeep(projectConfig);
let externalPackageResolver = new ExternalPackage2DependencyResolver_1.default(connToDevHub, projectConfig, null);
let externalDependencyMap = this.fetchDependencyEntries(projectConfig);
let externalPackage2s = await externalPackageResolver.resolveExternalPackage2DependenciesToVersions();
for (let externalPackage2 of externalPackage2s) {
externalDependencies.push(externalPackage2.name);
}
for (let dependency of externalDependencies) {
if (!Object.keys(externalDependencyMap).includes(dependency)) {
externalDependencyMap[dependency] = [{ package: '', versionNumber: '' }];
}
}
if (updatedProjectConfig.plugins && updatedProjectConfig.plugins.sfp) {
updatedProjectConfig.plugins.sfp.externalDependencyMap = externalDependencyMap;
}
else {
updatedProjectConfig.plugins = updatedProjectConfig.plugins || {};
updatedProjectConfig.plugins.sfp = updatedProjectConfig.plugins.sfp || {};
updatedProjectConfig.plugins.sfp.externalDependencyMap = externalDependencyMap;
}
return updatedProjectConfig;
}
async cleanupEntries(projectConfig) {
let updatedProjectConfig = await lodash_1.default.cloneDeep(projectConfig);
if (updatedProjectConfig?.plugins?.sfp?.externalDependencyMap) {
const externalDependencyMap = updatedProjectConfig.plugins.sfp.externalDependencyMap;
for (let externalPackage of Object.keys(externalDependencyMap)) {
if (externalDependencyMap[externalPackage][0].package == '') {
delete externalDependencyMap[externalPackage];
}
else if (externalDependencyMap[externalPackage][0].package != '' &&
externalDependencyMap[externalPackage][0].versionNumber == '') {
delete externalDependencyMap[externalPackage][0].versionNumber;
}
}
}
return updatedProjectConfig;
}
}
exports.default = UserDefinedExternalDependencyMap;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlckRlZmluZWRFeHRlcm5hbERlcGVuZGVuY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZS9wcm9qZWN0L1VzZXJEZWZpbmVkRXh0ZXJuYWxEZXBlbmRlbmN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsc0VBQTZDO0FBQzdDLDJDQUEyRDtBQUMzRCxvREFBdUI7QUFDdkIsb0lBQTRHO0FBRTVHOzs7R0FHRztBQUNILE1BQXFCLGdDQUFnQztJQUd6QyxzQkFBc0IsQ0FBQyxhQUFrQjtRQUM3QyxJQUFJLGFBQWEsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLHFCQUFxQixFQUFFLENBQUM7WUFDcEQsSUFBSSxxQkFBcUIsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQztZQUM1RSxvQkFBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLHFCQUFxQixDQUFDLEVBQUUsa0JBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN4RSxPQUFPLHFCQUFxQixDQUFDO1FBQ2pDLENBQUM7O1lBRUEsT0FBTyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRU0sS0FBSyxDQUFDLG9CQUFvQixDQUFDLGFBQWtCLEVBQUUsWUFBd0I7UUFDMUUsSUFBSSxvQkFBb0IsR0FBRyxFQUFFLENBQUM7UUFDOUIsSUFBSSxvQkFBb0IsR0FBRyxNQUFNLGdCQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVELElBQUksdUJBQXVCLEdBQUcsSUFBSSw0Q0FBa0MsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXhHLElBQUkscUJBQXFCLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZFLElBQUksaUJBQWlCLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQyw2Q0FBNkMsRUFBRSxDQUFDO1FBRXRHLEtBQUssSUFBSSxnQkFBZ0IsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQzdDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsS0FBSyxJQUFJLFVBQVUsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQzNELHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdFLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxvQkFBb0IsQ0FBQyxPQUFPLElBQUksb0JBQW9CLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ25FLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkYsQ0FBQzthQUFNLENBQUM7WUFDSixvQkFBb0IsQ0FBQyxPQUFPLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNsRSxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksRUFBRSxDQUFDO1lBQzFFLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkYsQ0FBQztRQUNELE9BQU8sb0JBQW9CLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBa0I7UUFDMUMsSUFBSSxvQkFBb0IsR0FBRyxNQUFNLGdCQUFDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzVELElBQUksb0JBQW9CLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxxQkFBcUIsRUFBRSxDQUFDO1lBQzVELE1BQU0scUJBQXFCLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQztZQUNyRixLQUFLLElBQUksZUFBZSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO2dCQUM3RCxJQUFJLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQztvQkFDMUQsT0FBTyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsQ0FBQztnQkFDbEQsQ0FBQztxQkFBTSxJQUNILHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFO29CQUN2RCxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLElBQUksRUFBRSxFQUMvRCxDQUFDO29CQUNDLE9BQU8scUJBQXFCLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO2dCQUNuRSxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLG9CQUFvQixDQUFDO0lBQ2hDLENBQUM7Q0FDSjtBQTFERCxtREEwREMifQ==