@apistudio/apim-cli
Version:
CLI for API Management Products
42 lines (33 loc) • 1.42 kB
text/typescript
/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import {prepareGatewayJson, prepareArchiveBuffer, executeDeployment} from '../deployers/project/projects-deployer.js';
import {DeployOptionsModel} from '../model/studio/command-options/deploy-options-model.js';
import {buildAssetsOrProjects, writeArchive} from './helpers/deploy-action-helper.js'
import {authTokenPrompt, passwordPrompt} from '../prompts/input-prompt.js';
import { setupDebugManager } from './test-action.js';
export const deployAction = async (projects: string, options: DeployOptionsModel) => {
let gatewaySecret;
let is_mcsp_enabled=false;
if(options.username)
{
gatewaySecret= await passwordPrompt(options.password);
}
else{
gatewaySecret= await authTokenPrompt(options.authToken);
is_mcsp_enabled= true;
}
const gatewayJson = prepareGatewayJson(options.target, options.username, gatewaySecret, options.overwrite, is_mcsp_enabled);
const debug = options.debug;
setupDebugManager(debug);
if(options.archive) {
const archiveBuffer = prepareArchiveBuffer(options.archive);
await executeDeployment(gatewayJson, archiveBuffer);
} else {
const zipBuffer = await buildAssetsOrProjects(projects, options.all, options.names, options.localDir);
if(options.debug){
await writeArchive(projects, options.all, options.names, zipBuffer);
}
await executeDeployment(gatewayJson, zipBuffer);
}
};