UNPKG

@copado/copado-cli

Version:

Copado Developer CLI

140 lines 7.79 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 inquirer = __importStar(require("inquirer")); const core_1 = require("@salesforce/core"); const theme_1 = __importDefault(require("../../../../service/theme")); const filesystem_1 = require("../../../../copado_commons/filesystem"); const restConnections_1 = require("../../../../service/restConnections"); const sfdxfilesystem_1 = require("../../../../copado_commons/sfdxfilesystem"); const pipelines_1 = __importDefault(require("../../../../selector/pipelines")); const environments_1 = __importDefault(require("../../../../selector/environments")); const sf_plugins_core_1 = require("@salesforce/sf-plugins-core"); core_1.Messages.importMessagesDirectory(__dirname); const messages = core_1.Messages.loadMessages('@copado/copado-cli', 'copado_pipeline'); class CreateConnection extends sf_plugins_core_1.SfCommand { async run() { const ux = new sf_plugins_core_1.Ux({ jsonEnabled: this.jsonEnabled() }); try { const copadoUser = await filesystem_1.CopadoFiles.getCurrentUser(); const { flags } = await this.parse(CreateConnection); const connection = await this.connection(flags, ux); ux.spinner.start(messages.getMessage('connection.create.creating')); const result = await restConnections_1.RestConnections.restServiceCall('pipeline', 'connection', 'create', connection, copadoUser); ux.spinner.stop(); ux.log(theme_1.default.status.Successful(result.message)); ux.log(`${messages.getMessage('create.openInstruction')} ${theme_1.default.format.underlineBold(messages.getMessage('connection.create.openExample'), result.pipelineConnection)}`); return result; } catch (error) { ux.spinner.stop(); throw new core_1.SfError(error.message); } } async connection(flags, ux) { const pipelineId = flags.pipeline || await this.askPipeline(ux); const sourceEnvironmentId = flags.local ? null : (flags.sourceenvironment || await this.getDefaultSourceEnvironment()) || await this.askEnvironment(pipelineId, messages.getMessage('connection.create.selectSource'), ux); const destinationEnvironmentId = flags.destinationenvironment || await this.askEnvironment(pipelineId, messages.getMessage('connection.create.selectDestination'), ux); const isScratchOrg = await this.isScratchOrg(); return { pipelineId, isScratchOrg, sourceEnvironmentId, destinationEnvironmentId, sourceBranch: flags.sourcebranch, createLocalEnvironment: flags.local, createSnapShotRecord: flags.snapshot, destinationBranch: flags.destinationbranch }; } async askPipeline(ux) { ux.spinner.start(messages.getMessage('connection.create.fetchingPipeline')); const pipelines = await new pipelines_1.default().active(); ux.spinner.stop(); const selectedPipeline = await inquirer.prompt([{ name: 'Id', message: 'Select Pipeline', type: 'list', choices: pipelines === null || pipelines === void 0 ? void 0 : pipelines.map(pipeline => ({ name: pipeline.Name, value: pipeline.Id })) }]); return selectedPipeline.Id; } async askEnvironment(pipelineId, message, ux) { ux.spinner.start(messages.getMessage('connection.create.fetchingEnvironment')); const environments = await new environments_1.default().byPipelineType(pipelineId); ux.spinner.stop(); const selectedEnvironment = await inquirer.prompt([{ message, name: 'Id', type: 'list', choices: environments === null || environments === void 0 ? void 0 : environments.map(environment => ({ name: environment.Name, value: environment.Id })) }]); return selectedEnvironment.Id; } async getDefaultSourceEnvironment() { let result = null; try { result = await sfdxfilesystem_1.SfdxFileSystem.getDefaultUserName() .then((defaultUserName) => sfdxfilesystem_1.SfdxFileSystem.getUserName(defaultUserName)) .then(username => sfdxfilesystem_1.SfdxFileSystem.getUserInfo(username)) .then(authInfo => authInfo.getFields()) .then(authInfoFields => authInfoFields.orgId) .catch(); } catch (error) { } return result; } static flagConfig() { return { pipeline: sf_plugins_core_1.Flags.string({ char: 'p', description: messages.getMessage('connection.create.flags.pipeline') }), sourcebranch: sf_plugins_core_1.Flags.string({ char: 'b', description: messages.getMessage('connection.create.flags.sourceBranch') }), destinationbranch: sf_plugins_core_1.Flags.string({ char: 'd', description: messages.getMessage('connection.create.flags.destinationBranch') }), sourceenvironment: sf_plugins_core_1.Flags.string({ char: 'e', description: messages.getMessage('connection.create.flags.sourceEnvironment') }), destinationenvironment: sf_plugins_core_1.Flags.string({ char: 't', description: messages.getMessage('connection.create.flags.destinationEnvironment') }), snapshot: sf_plugins_core_1.Flags.boolean({ char: 'g', description: messages.getMessage('connection.create.flags.snaphot'), default: true }), local: sf_plugins_core_1.Flags.boolean({ char: 'l', description: messages.getMessage('connection.create.flags.local'), default: false }) }; } async isScratchOrg() { let result = null; try { result = await sfdxfilesystem_1.SfdxFileSystem.getDefaultUserName() .then((defaultUserName) => sfdxfilesystem_1.SfdxFileSystem.getUserName(defaultUserName)) .then(username => sfdxfilesystem_1.SfdxFileSystem.getUserInfo(username)) .then(authInfo => authInfo.getFields()) .then(authInfoFields => authInfoFields.devHubUsername); } catch (error) { } return Boolean(result); } } exports.default = CreateConnection; CreateConnection.description = messages.getMessage('connection.create.description'); CreateConnection.examples = [messages.getMessage('connection.create.example1'), messages.getMessage('connection.create.example2')]; CreateConnection.flags = CreateConnection.flagConfig(); //# sourceMappingURL=create.js.map