@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
88 lines • 7.35 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 ShrinkImpl_1 = __importDefault(require("../../impl/dependency/ShrinkImpl"));
const core_1 = require("@salesforce/core");
const SfpCommand_1 = __importDefault(require("../../SfpCommand"));
const ProjectConfig_1 = __importDefault(require("../../core/project/ProjectConfig"));
const fs = __importStar(require("fs-extra"));
const path = require("path");
const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger"));
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_shrink');
class Shrink 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 shrinkImpl = new ShrinkImpl_1.default(this.hubOrg.getConnection());
projectConfig = await shrinkImpl.shrinkDependencies(projectConfig);
//Create temp directory if not exist
if (!fs.existsSync(defaultProjectConfigPath))
fs.mkdirpSync(defaultProjectConfigPath);
if (this.flags.overwrite) {
sfp_logger_1.default.log(`Overwriting sfdx-project.json with shrunk 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.min.json`);
fs.writeFileSync(projectConfigFilePath, JSON.stringify(projectConfig, null, 4));
sfp_logger_1.default.log(`Shrunk project config file has been saved to ${projectConfigFilePath}`, sfp_logger_1.LoggerLevel.INFO);
}
}
catch (error) {
throw new Error('Unable to shrink project config file:' + error);
}
}
}
Shrink.description = messages.getMessage('commandDescription');
Shrink.requiresDevhubUsername = true;
Shrink.requiresProject = true;
Shrink.flags = {
overwrite: core_2.Flags.boolean({
char: 'o',
description: messages.getMessage('overWriteProjectConfigFlagDescription'),
default: false,
}),
targetdevhubusername: sfdxflags_1.targetdevhubusername,
loglevel: sfdxflags_1.loglevel
};
exports.default = Shrink;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hyaW5rLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL2RlcGVuZGVuY3kvc2hyaW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrRkFBMEQ7QUFDMUQsMkNBQTRDO0FBQzVDLGtFQUEwQztBQUMxQyxxRkFBNkQ7QUFDN0QsNkNBQStCO0FBQy9CLDZCQUE4QjtBQUM5QixtRUFBc0U7QUFDdEUsc0NBQW9DO0FBQ3BDLHFEQUF1RTtBQUd2RSx3REFBd0Q7QUFDeEQsZUFBUSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRTVDLGlHQUFpRztBQUNqRyxtRkFBbUY7QUFDbkYsTUFBTSxRQUFRLEdBQUcsZUFBUSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUU3RSxNQUFxQixNQUFPLFNBQVEsb0JBQVU7SUFnQm5DLEtBQUssQ0FBQyxPQUFPO1FBQ2hCLElBQUksd0JBQXdCLEdBQUcsa0JBQWtCLENBQUM7UUFDbEQsSUFBSSxxQkFBNkIsQ0FBQztRQUNsQyxJQUFJLENBQUM7WUFDRCw2REFBNkQ7WUFDN0QsSUFBSSxhQUFhLEdBQUcsdUJBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUN0RSxNQUFNLFVBQVUsR0FBRyxJQUFJLG9CQUFVLENBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQzlCLENBQUM7WUFDRixhQUFhLEdBQUcsTUFBTSxVQUFVLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7WUFFbkUsb0NBQW9DO1lBQ3BDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUFDO2dCQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUV0RixJQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFDLENBQUM7Z0JBQ3JCLG9CQUFTLENBQUMsR0FBRyxDQUFDLCtEQUErRCxFQUFDLHdCQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQy9GLHFCQUFxQixHQUFHLG1CQUFtQixDQUFDO2dCQUU1QyxJQUFJLGNBQWMsR0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLHVCQUF1QixDQUFDLENBQUM7Z0JBQzFGLG9CQUFTLENBQUMsR0FBRyxDQUFDLHNCQUFzQixjQUFjLEVBQUUsRUFBQyx3QkFBVyxDQUFDLElBQUksQ0FBQyxDQUFBO2dCQUN0RSxFQUFFLENBQUMsUUFBUSxDQUFDLHFCQUFxQixFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUVuRCxFQUFFLENBQUMsYUFBYSxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoRixvQkFBUyxDQUFDLEdBQUcsQ0FBQyxxQ0FBcUMsRUFBQyx3QkFBVyxDQUFDLElBQUksQ0FBQyxDQUFBO1lBQ3pFLENBQUM7aUJBQUksQ0FBQztnQkFDRixxQkFBcUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLHVCQUF1QixDQUFDLENBQUM7Z0JBQ3JGLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hGLG9CQUFTLENBQUMsR0FBRyxDQUFDLGdEQUFnRCxxQkFBcUIsRUFBRSxFQUFDLHdCQUFXLENBQUMsSUFBSSxDQUFDLENBQUE7WUFDM0csQ0FBQztRQUVMLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx1Q0FBdUMsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNyRSxDQUFDO0lBQ0wsQ0FBQzs7QUFoRGEsa0JBQVcsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFFckQsNkJBQXNCLEdBQUcsSUFBSSxDQUFDO0FBQzlCLHNCQUFlLEdBQUcsSUFBSSxDQUFDO0FBRTFCLFlBQUssR0FBRztJQUNsQixTQUFTLEVBQUUsWUFBSyxDQUFDLE9BQU8sQ0FBQztRQUNyQixJQUFJLEVBQUUsR0FBRztRQUNULFdBQVcsRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLHVDQUF1QyxDQUFDO1FBQ3pFLE9BQU8sRUFBRSxLQUFLO0tBQ2pCLENBQUM7SUFDRixvQkFBb0IsRUFBcEIsZ0NBQW9CO0lBQ3JCLFFBQVEsRUFBUixvQkFBUTtDQUNWLENBQUM7a0JBZGUsTUFBTSJ9