@microfox/cli
Version:
Universal CLI tool for creating modern TypeScript packages with npm availability checking
1 lines • 8.16 kB
Source Map (JSON)
{"version":3,"sources":["../src/commands/status.ts"],"sourcesContent":["import chalk from 'chalk';\nimport axios from 'axios';\nimport inquirer from 'inquirer';\n\nconst API_BASE_URL = 'https://staging-cicd.microfox.app/api/deployment-status/agent/status/';\n\nasync function getRunId(runId?: string): Promise<string> {\n if (runId) {\n return runId;\n }\n const { promptedRunId } = await inquirer.prompt([\n {\n type: 'input',\n name: 'promptedRunId',\n message: 'Please enter the deployment Run ID:',\n validate: (input) => !!input || 'Run ID cannot be empty.',\n },\n ]);\n return promptedRunId;\n }\n \n\nasync function getDeploymentData(runId: string) {\n try {\n const response = await axios.get(`${API_BASE_URL}${runId}`);\n return response.data;\n } catch (error) {\n if (axios.isAxiosError(error) && error.response?.status === 404) {\n console.error(chalk.red(`❌ Error: Deployment with Run ID \"${runId}\" not found.`));\n } else {\n console.error(chalk.red('❌ An error occurred while fetching deployment status:'));\n console.error(error);\n }\n process.exit(1);\n }\n}\n\nexport async function statusCommand(runId: string): Promise<void> {\n const finalRunId = await getRunId(runId);\n const data = await getDeploymentData(finalRunId);\n const deployment = data.data.deployment;\n\n console.log(chalk.cyan.bold('🚀 Deployment Status'));\n console.log(chalk.gray('----------------------------------------'));\n console.log(`${chalk.bold('Run ID:')} ${deployment.sha}`);\n console.log(`${chalk.bold('Status:')} ${chalk.green(deployment.status)}`);\n console.log(`${chalk.bold('Description:')} ${deployment.statusDescription}`);\n console.log(`${chalk.bold('Stage:')} ${deployment.stage}`);\n console.log(`${chalk.bold('Start Time:')} ${deployment.startTime ? new Date(deployment.startTime).toLocaleString() : 'N/A'}`);\n console.log(`${chalk.bold('End Time:')} ${deployment.endTime ? new Date(deployment.endTime).toLocaleString() : 'N/A'}`);\n console.log(`${chalk.bold('Base URL:')} ${deployment.baseUrl ? chalk.underline.blue(deployment.baseUrl) : 'N/A'}`);\n console.log(chalk.gray('----------------------------------------'));\n}\n\nexport async function logsCommand(runId: string): Promise<void> {\n const finalRunId = await getRunId(runId);\n const data = await getDeploymentData(finalRunId);\n const logs = data.data.deploymentLogs;\n\n console.log(chalk.cyan.bold('📜 Deployment Logs'));\n console.log(chalk.gray('----------------------------------------'));\n console.log(logs);\n console.log(chalk.gray('----------------------------------------'));\n}\n\nexport async function metricsCommand(runId: string): Promise<void> {\n const finalRunId = await getRunId(runId);\n const data = await getDeploymentData(finalRunId);\n const metrics = data.data.deployment.metrics;\n\n console.log(chalk.cyan.bold('📊 Deployment Metrics'));\n console.log(chalk.gray('----------------------------------------'));\n \n console.log(chalk.bold.underline('System'));\n console.log(` Platform: ${metrics.system.platform}`);\n console.log(` Architecture: ${metrics.system.arch}`);\n console.log(` Node Version: ${metrics.system.nodeVersion}`);\n\n console.log(chalk.bold.underline('\\nTiming (ms)'));\n for (const [step, duration] of Object.entries(metrics?.timing?.stepDurations || {})) {\n console.log(` ${step}:`.padEnd(15) + `${duration ? `${duration}ms` : 'N/A'}`);\n }\n console.log(` Total Duration:`.padEnd(15) + `${metrics?.timing?.totalDuration ? `${metrics.timing.totalDuration}ms` : 'N/A'}`);\n\n console.log(chalk.bold.underline('\\nResources'));\n console.log(chalk.bold(' CPU:'));\n console.log(` Peak: ${metrics?.resources?.cpu?.peak ? `${metrics?.resources?.cpu?.peak}${metrics?.resources?.cpu?.usageUnits}` : 'N/A'}`);\n console.log(` Average: ${metrics?.resources?.cpu?.average ? `${metrics?.resources?.cpu?.average}${metrics?.resources?.cpu?.usageUnits}` : 'N/A'}`);\n console.log(chalk.bold(' Memory:'));\n console.log(` Peak: ${metrics?.resources?.memory?.peak ? `${metrics?.resources?.memory?.peak.toFixed(2)}${metrics?.resources?.memory?.usageUnits}` : 'N/A'}`);\n console.log(` Average: ${metrics?.resources?.memory?.average ? `${metrics?.resources?.memory?.average.toFixed(2)}${metrics?.resources?.memory?.usageUnits}` : 'N/A'}`);\n console.log(chalk.bold(' Disk:'));\n console.log(` Final Size: ${metrics?.resources?.diskSize?.final ? `${(metrics?.resources?.diskSize?.final / (1024 * 1024)).toFixed(2)} MB` : 'N/A'}`);\n\n console.log(chalk.gray('----------------------------------------'));\n} "],"mappings":"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","names":[]}