UNPKG

@flxbl-io/sfp

Version:

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

128 lines 10.1 kB
"use strict"; 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 core_1 = require("@salesforce/core"); const _ = __importStar(require("lodash")); const sfpowerkit_1 = require("@flxbl-io/sfprofiles/lib/utils/sfpowerkit"); const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger")); const metadataInfo_1 = require("@flxbl-io/sfprofiles/lib/impl/metadata/metadataInfo"); const path = __importStar(require("path")); const profileReconcile_1 = __importDefault(require("@flxbl-io/sfprofiles/lib/impl/source/profileReconcile")); const metadataFiles_1 = __importDefault(require("@flxbl-io/sfprofiles/lib/impl/metadata/metadataFiles")); const SfpCommand_1 = __importDefault(require("../../SfpCommand")); const Table = require('cli-table'); const TableConstants_1 = require("../../ui/TableConstants"); const core_2 = require("@oclif/core"); const sfdxflags_1 = require("../../flags/sfdxflags"); core_1.Messages.importMessagesDirectory(__dirname); const messages = core_1.Messages.loadMessages('@flxbl-io/sfp', 'profile_reconcile'); class Reconcile extends SfpCommand_1.default { async execute() { let argFolder = this.flags.folder; let argProfileList = this.flags.profilelist; if (!this.flags.sourceonly) { if (_.isNil(this.flags.targetorg)) { throw new Error('Either set sourceonly flag or provide and org for reconcile'); } else { this.org = await core_1.Org.create({ aliasOrUsername: this.flags.targetorg }); } } metadataFiles_1.default.sourceOnly = this.flags.sourceonly; if (!_.isNil(argFolder) && argFolder.length !== 0) { sfpowerkit_1.Sfpowerkit.setDefaultFolder(argFolder[0]); } let result = []; try { //@ts-ignore let profileReconciler = new profileReconcile_1.default(this.org); let reconcileProfiles = await profileReconciler.reconcile(argFolder, argProfileList || [], this.flags.destfolder); // Return an object to be displayed with --json reconcileProfiles.forEach((file) => { result.push({ state: 'Cleaned', fullName: path.basename(file, metadataInfo_1.METADATA_INFO.Profile.sourceExtension), type: 'Profile', path: path.relative(process.cwd(), file), }); }); } catch (err) { sfp_logger_1.default.log(err, sfp_logger_1.LoggerLevel.ERROR); sfp_logger_1.default.log('An error occured during profile reconcile. You can rerun the command after a moment.', sfp_logger_1.LoggerLevel.ERROR); } const table = new Table({ head: ['State', 'Full Name', 'Type', 'Path'], chars: TableConstants_1.ZERO_BORDER_TABLE, }); for (let res of result) { table.push([res.state, res.fullName, res.type, res.path]); } sfp_logger_1.default.log(table.toString(), sfp_logger_1.LoggerLevel.INFO); return result; } } Reconcile.description = messages.getMessage('commandDescription'); Reconcile.examples = [ `$ sfp profile:reconcile --folder force-app -d destfolder -s`, `$ sfp profile:reconcile --folder force-app,module2,module3 -o sandbox -d destfolder`, `$ sfp profile:reconcile -o myscratchorg -d destfolder`, ]; Reconcile.flags = { folder: (0, sfdxflags_1.arrayFlagSfdxStyle)({ char: 'f', description: messages.getMessage('folderFlagDescription'), required: false, }), profilelist: (0, sfdxflags_1.arrayFlagSfdxStyle)({ char: 'n', description: messages.getMessage('nameFlagDescription'), required: false, }), destfolder: core_2.Flags.directory({ char: 'd', description: messages.getMessage('destFolderFlagDescription'), required: false, }), sourceonly: core_2.Flags.boolean({ char: 's', description: messages.getMessage('sourceonlyFlagDescription'), required: false, }), targetorg: sfdxflags_1.requiredUserNameFlag, 'apiversion': sfdxflags_1.orgApiVersionFlagSfdxStyle, loglevel: sfdxflags_1.loglevel, }; // Comment this out if your command does not require an org username Reconcile.requiresUsername = false; // Comment this out if your command does not support a hub org username //protected static supportsDevhubUsername = true; // Set this to true if your command requires a project workspace; 'requiresProject' is false by default Reconcile.requiresProject = true; exports.default = Reconcile; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb25jaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3Byb2ZpbGUvcmVjb25jaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBa0Q7QUFDbEQsMENBQTRCO0FBQzVCLDBFQUF1RTtBQUN2RSxtRUFBOEQ7QUFDOUQsc0ZBQW9GO0FBQ3BGLDJDQUE2QjtBQUM3Qiw2R0FBcUY7QUFDckYseUdBQWlGO0FBQ2pGLGtFQUEwQztBQUMxQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbkMsNERBQTREO0FBQzVELHNDQUFvQztBQUNwQyxxREFBdUg7QUFFdkgsZUFBUSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRzVDLE1BQU0sUUFBUSxHQUFHLGVBQVEsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFFN0UsTUFBcUIsU0FBVSxTQUFRLG9CQUFVO0lBK0N0QyxLQUFLLENBQUMsT0FBTztRQUNoQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNsQyxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUU1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7WUFDbkYsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxVQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztZQUMzRSxDQUFDO1FBQ0wsQ0FBQztRQUVELHVCQUFhLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBRWpELElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEQsdUJBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBRUQsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLElBQUksQ0FBQztZQUNELFlBQVk7WUFDWixJQUFJLGlCQUFpQixHQUFHLElBQUksMEJBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3ZELElBQUksaUJBQWlCLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxTQUFTLENBQ3JELFNBQVMsRUFDVCxjQUFjLElBQUksRUFBRSxFQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FDeEIsQ0FBQztZQUVGLCtDQUErQztZQUUvQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDL0IsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDUixLQUFLLEVBQUUsU0FBUztvQkFDaEIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLDRCQUFhLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQztvQkFDcEUsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQztpQkFDM0MsQ0FBQyxDQUFDO1lBQ1AsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNYLG9CQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSx3QkFBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXRDLG9CQUFTLENBQUMsR0FBRyxDQUNULHNGQUFzRixFQUN0Rix3QkFBVyxDQUFDLEtBQUssQ0FDcEIsQ0FBQztRQUNOLENBQUM7UUFDRyxNQUFNLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQztZQUNwQixJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7WUFDNUMsS0FBSyxFQUFFLGtDQUFpQjtTQUMzQixDQUFDLENBQUM7UUFDUCxLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0Qsb0JBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLHdCQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7QUF0R2EscUJBQVcsR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFFeEQsa0JBQVEsR0FBRztJQUNyQiw4REFBOEQ7SUFDOUQsc0ZBQXNGO0lBQ3RGLHdEQUF3RDtDQUMzRCxDQUFDO0FBSVksZUFBSyxHQUFHO0lBQ2xCLE1BQU0sRUFBQyxJQUFBLDhCQUFrQixFQUFDO1FBQ3RCLElBQUksRUFBRSxHQUFHO1FBQ1QsV0FBVyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUM7UUFDekQsUUFBUSxFQUFFLEtBQUs7S0FDbEIsQ0FBQztJQUNGLFdBQVcsRUFBRSxJQUFBLDhCQUFrQixFQUFDO1FBQzVCLElBQUksRUFBRSxHQUFHO1FBQ1QsV0FBVyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUM7UUFDdkQsUUFBUSxFQUFFLEtBQUs7S0FDbEIsQ0FBQztJQUNGLFVBQVUsRUFBRSxZQUFLLENBQUMsU0FBUyxDQUFDO1FBQ3hCLElBQUksRUFBRSxHQUFHO1FBQ1QsV0FBVyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUM7UUFDN0QsUUFBUSxFQUFFLEtBQUs7S0FDbEIsQ0FBQztJQUNGLFVBQVUsRUFBRSxZQUFLLENBQUMsT0FBTyxDQUFDO1FBQ3RCLElBQUksRUFBRSxHQUFHO1FBQ1QsV0FBVyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsMkJBQTJCLENBQUM7UUFDN0QsUUFBUSxFQUFFLEtBQUs7S0FDbEIsQ0FBQztJQUNGLFNBQVMsRUFBRSxnQ0FBb0I7SUFDL0IsWUFBWSxFQUFFLHNDQUEwQjtJQUN4QyxRQUFRLEVBQVIsb0JBQVE7Q0FFWCxDQUFDO0FBRUYsb0VBQW9FO0FBQ25ELDBCQUFnQixHQUFHLEtBQUssQ0FBQztBQUUxQyx1RUFBdUU7QUFDdkUsaURBQWlEO0FBRWpELHVHQUF1RztBQUN0Rix5QkFBZSxHQUFHLElBQUksQ0FBQztrQkE3Q3ZCLFNBQVMifQ==