@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
91 lines • 8.08 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 core_1 = require("@salesforce/core");
const SfpCommand_1 = __importDefault(require("../../SfpCommand"));
const ProjectConfig_1 = __importDefault(require("../../core/project/ProjectConfig"));
const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger"));
const fs = __importStar(require("fs-extra"));
const path = require("path");
const UserDefinedExternalDependency_1 = __importDefault(require("../../core/project/UserDefinedExternalDependency"));
const core_2 = require("@oclif/core");
const sfdxflags_1 = require("../../flags/sfdxflags");
// Initialize Messages with the current plugin directory
core_1.Messages.importMessagesDirectory(__dirname);
// Load the specific messages for this file. Messages from @salesforce/command, @salesforce/core,
// or any library that is using the messages framework can also be loaded this way.
const messages = core_1.Messages.loadMessages('@flxbl-io/sfp', 'dependency_expand');
class Expand extends SfpCommand_1.default {
async execute() {
let defaultProjectConfigPath = './project-config';
let projectConfigFilePath;
try {
//Validate dependencies in sfdx-project.json // Read Manifest
let projectConfig = ProjectConfig_1.default.getSFDXProjectConfig(process.cwd());
const transitiveDependencyResolver = new TransitiveDependencyResolver_1.default(projectConfig);
let resolvedDependencyMap = await transitiveDependencyResolver.resolveTransitiveDependencies();
projectConfig = await ProjectConfig_1.default.updateProjectConfigWithDependencies(projectConfig, resolvedDependencyMap);
projectConfig = await (new UserDefinedExternalDependency_1.default()).addDependencyEntries(projectConfig, this.hubOrg.getConnection());
//Clean up temp directory
if (!fs.existsSync(defaultProjectConfigPath))
fs.mkdirpSync(defaultProjectConfigPath);
if (this.flags.overwrite) {
sfp_logger_1.default.log(`Overwriting sfdx-project.json with expanded project config file`, sfp_logger_1.LoggerLevel.INFO);
projectConfigFilePath = `sfdx-project.json`;
let backupFilePath = path.join(defaultProjectConfigPath, `sfdx-project.json.bak`);
sfp_logger_1.default.log(`Saving a backup to ${backupFilePath}`, sfp_logger_1.LoggerLevel.INFO);
fs.copySync(projectConfigFilePath, backupFilePath);
fs.writeFileSync(projectConfigFilePath, JSON.stringify(projectConfig, null, 4));
sfp_logger_1.default.log('sfdx-project.json has been updated.', sfp_logger_1.LoggerLevel.INFO);
}
else {
projectConfigFilePath = path.join(defaultProjectConfigPath, `sfdx-project.exp.json`);
fs.writeFileSync(projectConfigFilePath, JSON.stringify(projectConfig, null, 4));
sfp_logger_1.default.log(`Generated project config file has been saved to ${projectConfigFilePath}`, sfp_logger_1.LoggerLevel.INFO);
}
}
catch (error) {
throw new Error('Unable to generate project config file:' + error);
}
}
}
Expand.description = messages.getMessage('commandDescription');
Expand.requiresDevhubUsername = true;
Expand.requiresProject = true;
Expand.flags = {
targetdevhubusername: sfdxflags_1.targetdevhubusername,
overwrite: core_2.Flags.boolean({
char: 'o',
description: messages.getMessage('overWriteProjectConfigFlagDescription'),
default: false,
}),
loglevel: sfdxflags_1.loglevel
};
exports.default = Expand;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2RlcGVuZGVuY3kvZXhwYW5kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxnSUFBd0c7QUFDeEcsMkNBQTRDO0FBQzVDLGtFQUEwQztBQUMxQyxxRkFBNkQ7QUFDN0QsbUVBQXNFO0FBQ3RFLDZDQUErQjtBQUMvQiw2QkFBOEI7QUFDOUIscUhBQTZGO0FBQzdGLHNDQUFvQztBQUNwQyxxREFBdUU7QUFFdkUsd0RBQXdEO0FBQ3hELGVBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUU1QyxpR0FBaUc7QUFDakcsbUZBQW1GO0FBQ25GLE1BQU0sUUFBUSxHQUFHLGVBQVEsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFFN0UsTUFBcUIsTUFBTyxTQUFRLG9CQUFVO0lBaUJuQyxLQUFLLENBQUMsT0FBTztRQUNoQixJQUFJLHdCQUF3QixHQUFHLGtCQUFrQixDQUFDO1FBQ2xELElBQUkscUJBQTZCLENBQUM7UUFDbEMsSUFBSSxDQUFDO1lBQ0QsNkRBQTZEO1lBQzdELElBQUksYUFBYSxHQUFHLHVCQUFhLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDdEUsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLHNDQUE0QixDQUNqRSxhQUFhLENBQ2hCLENBQUM7WUFHRixJQUFJLHFCQUFxQixHQUFJLE1BQU0sNEJBQTRCLENBQUMsNkJBQTZCLEVBQUUsQ0FBQztZQUNoRyxhQUFhLEdBQUcsTUFBTSx1QkFBYSxDQUFDLG1DQUFtQyxDQUFDLGFBQWEsRUFBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQzdHLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSx1Q0FBNkIsRUFBRSxDQUFDLENBQUMsb0JBQW9CLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUU3SCx5QkFBeUI7WUFDekIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUM7Z0JBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBRXRGLElBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUMsQ0FBQztnQkFDckIsb0JBQVMsQ0FBQyxHQUFHLENBQUMsaUVBQWlFLEVBQUMsd0JBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDakcscUJBQXFCLEdBQUcsbUJBQW1CLENBQUM7Z0JBRTVDLElBQUksY0FBYyxHQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztnQkFDMUYsb0JBQVMsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLGNBQWMsRUFBRSxFQUFDLHdCQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ3RFLEVBQUUsQ0FBQyxRQUFRLENBQUMscUJBQXFCLEVBQUUsY0FBYyxDQUFDLENBQUM7Z0JBRW5ELEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hGLG9CQUFTLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxFQUFDLHdCQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDekUsQ0FBQztpQkFBSSxDQUFDO2dCQUNGLHFCQUFxQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztnQkFDckYsRUFBRSxDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEYsb0JBQVMsQ0FBQyxHQUFHLENBQUMsbURBQW1ELHFCQUFxQixFQUFFLEVBQUMsd0JBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtZQUM5RyxDQUFDO1FBRUwsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDTCxDQUFDOztBQXJEYSxrQkFBVyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUdyRCw2QkFBc0IsR0FBRyxJQUFJLENBQUM7QUFDOUIsc0JBQWUsR0FBRyxJQUFJLENBQUM7QUFFMUIsWUFBSyxHQUFHO0lBQ2xCLG9CQUFvQixFQUFwQixnQ0FBb0I7SUFDcEIsU0FBUyxFQUFFLFlBQUssQ0FBQyxPQUFPLENBQUM7UUFDckIsSUFBSSxFQUFFLEdBQUc7UUFDVCxXQUFXLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyx1Q0FBdUMsQ0FBQztRQUN6RSxPQUFPLEVBQUUsS0FBSztLQUNqQixDQUFDO0lBQ0YsUUFBUSxFQUFSLG9CQUFRO0NBQ1gsQ0FBQztrQkFmZSxNQUFNIn0=