@apistudio/apim-cli
Version:
CLI for API Management Products
33 lines (32 loc) • 1.4 kB
JavaScript
/**
* Copyright Super iPaaS Integration LLC, an IBM Company 2024
*/
import { prepareGatewayJson, prepareArchiveBuffer, executeDeployment } from '../deployers/project/projects-deployer.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, options) => {
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);
}
};