@flxbl-io/sfp
Version:
sfp is a CLI tool to help you manage your Salesforce projects in an artifact centric model
92 lines • 8.09 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 SfpCommand_1 = __importDefault(require("../../SfpCommand"));
const sfp_logger_1 = __importStar(require("@flxbl-io/sfp-logger"));
const core_2 = require("@oclif/core");
const sfdxflags_1 = require("../../flags/sfdxflags");
const FlowOperations_1 = require("../../core/flows/FlowOperations");
const sfdxflags_2 = require("../../flags/sfdxflags");
const SFPOrg_1 = __importDefault(require("../../core/org/SFPOrg"));
// 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', 'flow');
class Cleanup extends SfpCommand_1.default {
async execute() {
sfp_logger_1.default.log((0, sfp_logger_1.COLOR_HEADER)(`command: ${(0, sfp_logger_1.COLOR_KEY_MESSAGE)(`flow:cleanup`)}`), sfp_logger_1.LoggerLevel.INFO);
const { developername, namespaceprefix } = this.flags;
this.sfpOrg = await SFPOrg_1.default.create({ aliasOrUsername: this.flags.targetorg });
try {
const flowdefinition = await (0, FlowOperations_1.getFlowDefinition)({
developername,
namespaceprefix,
}, this.sfpOrg, new sfp_logger_1.ConsoleLogger());
//discover the active version of the flow
if (flowdefinition.ActiveVersionId) {
sfp_logger_1.default.log(`Successfully discovered the active version of flow ${developername}: ${flowdefinition.ActiveVersionId}`, sfp_logger_1.LoggerLevel.INFO);
}
let flows = await (0, FlowOperations_1.getFlowsByDefinition)(flowdefinition, this.sfpOrg, new sfp_logger_1.ConsoleLogger());
let succeededFlowIds = [];
if (flows && flows.length > 0) {
flows = flows.filter((flow) => flow.Id != flowdefinition.ActiveVersionId);
succeededFlowIds = await (0, FlowOperations_1.deleteFlows)(flows, this.sfpOrg, new sfp_logger_1.ConsoleLogger());
}
// do a comparison of the requested flows and succeeded flows
const flowIds = flows.map((flow) => flow.Id);
const failedFlowIds = flowIds.filter((flowId) => !succeededFlowIds.includes(flowId));
if (failedFlowIds.length > 0) {
throw new Error(`Failed to delete the following flow versions: ${failedFlowIds.join(', ')}, You may need to try again or manually delete them from the org.`);
}
sfp_logger_1.default.log(`Successfully cleaned up the flow ${developername}`, sfp_logger_1.LoggerLevel.INFO);
}
catch (error) {
throw new Error((0, sfp_logger_1.COLOR_ERROR)('Unable to cleanup flow:' + error.message));
}
}
}
Cleanup.description = messages.getMessage('cleanupDescription');
Cleanup.requiresUsername = true;
Cleanup.supportsDevhubUsername = true;
Cleanup.requiresProject = false;
Cleanup.flags = {
developername: core_2.Flags.string({
char: 'f',
description: messages.getMessage('developernameFlagDescription'),
}),
namespaceprefix: core_2.Flags.string({
char: 'p',
description: messages.getMessage('namespacePrefixFlagDescription'),
}),
targetorg: sfdxflags_2.requiredUserNameFlag,
loglevel: sfdxflags_1.loglevel,
};
exports.default = Cleanup;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW51cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tYW5kcy9mbG93L2NsZWFudXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUE0QztBQUM1QyxrRUFBMEM7QUFDMUMsbUVBTzhCO0FBQzlCLHNDQUFvQztBQUNwQyxxREFBaUQ7QUFDakQsb0VBQW1IO0FBQ25ILHFEQUE2RDtBQUM3RCxtRUFBMkM7QUFFM0Msd0RBQXdEO0FBQ3hELGVBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUU1QyxpR0FBaUc7QUFDakcsbUZBQW1GO0FBQ25GLE1BQU0sUUFBUSxHQUFHLGVBQVEsQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRWhFLE1BQXFCLE9BQVEsU0FBUSxvQkFBVTtJQXNCcEMsS0FBSyxDQUFDLE9BQU87UUFDaEIsb0JBQVMsQ0FBQyxHQUFHLENBQUMsSUFBQSx5QkFBWSxFQUFDLFlBQVksSUFBQSw4QkFBaUIsRUFBQyxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUUsd0JBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRixNQUFNLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBRSxHQUFJLElBQUksQ0FBQyxLQUdoRCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLGdCQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUU3RSxJQUFJLENBQUM7WUFDRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUEsa0NBQWlCLEVBQzFDO2dCQUNJLGFBQWE7Z0JBQ2IsZUFBZTthQUNsQixFQUNELElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSwwQkFBYSxFQUFFLENBQ3RCLENBQUM7WUFDRix5Q0FBeUM7WUFDekMsSUFBSSxj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