UNPKG

@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
"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 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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