@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
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 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb25jaWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1hbmRzL3Byb2ZpbGUvcmVjb25jaWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBa0Q7QUFDbEQsMENBQTRCO0FBQzVCLDBFQUF1RTtBQUN2RSxtRUFBOEQ7QUFDOUQsc0ZBQW9GO0FBQ3BGLDJDQUE2QjtBQUM3Qiw2R0FBcUY7QUFDckYseUdBQWlGO0FBQ2pGLGtFQUEwQztBQUMxQyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbkMsNERBQTREO0FBQzVELHNDQUFvQztBQUNwQyxxREFBdUg7QUFFdkgsZUFBUSxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBRzVDLE1BQU0sUUFBUSxHQUFHLGVBQVEsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFFN0UsTUFBcUIsU0FBVSxTQUFRLG9CQUFVO0lBK0N0QyxLQUFLLENBQUMsT0FBTztRQUNoQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUNsQyxJQUFJLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztRQUU1QyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLElBQUksS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7WUFDbkYsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxVQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FB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