UNPKG

@reliverse/rse-sdk

Version:

@reliverse/rse-sdk without cli. @reliverse/rse-sdk allows you to create new plugins for @reliverse/rse CLI, interact with reliverse.org, and even extend your own CLI functionality (you may also try @reliverse/dler-sdk for this case).

92 lines (91 loc) 2.71 kB
import { re } from "@reliverse/relico"; import { relinka } from "@reliverse/relinka"; import { selectPrompt } from "@reliverse/rempts"; import { prepareVercelProjectCreation } from "./vercel/vercel-create.js"; export async function selectDeploymentService(config) { if (config.projectDeployService !== void 0 && config.projectDeployService !== "none") { const deployService = config.projectDeployService; relinka("verbose", `Using configured deployment service: ${deployService}`); return deployService; } return await selectPrompt({ title: "Select deployment service", options: [ { label: "Vercel", value: "vercel", hint: "recommended" }, { label: "None", value: "none", hint: "skip deployment" }, { label: "...", value: "deno", hint: re.dim("coming soon"), disabled: true } ], defaultValue: "vercel" }); } export async function deployProject(githubInstance, vercelInstance, vercelToken, githubToken, skipPrompts, projectName, config, projectPath, primaryDomain, memory, deployMode, githubUsername) { relinka("verbose", `Preparing deployment for ${projectName} project...`); try { const deployService = await selectDeploymentService(config); if (deployService === "none") { relinka("info", "Skipping deployment..."); return { primaryDomain, deployService: "none", isDeployed: false, allDomains: [primaryDomain] }; } if (deployService !== "vercel") { relinka("info", `Deployment to ${deployService} is not yet implemented`); return { primaryDomain, deployService: "none", isDeployed: false, allDomains: [primaryDomain] }; } const success = await prepareVercelProjectCreation( githubInstance, vercelInstance, vercelToken, githubToken, skipPrompts, projectName, projectPath, primaryDomain, memory, deployMode, githubUsername ); if (success) { relinka("verbose", "Deployment completed!"); return { primaryDomain, deployService, isDeployed: true, allDomains: [primaryDomain] }; } else { relinka("error", "Failed to deploy project"); return { primaryDomain, deployService: "none", isDeployed: false, allDomains: [primaryDomain] }; } } catch (error) { relinka( "error", "Error during deployment:", error instanceof Error ? error.message : String(error) ); return { primaryDomain, deployService: "none", isDeployed: false, allDomains: [primaryDomain] }; } }