UNPKG

@mondaycom/apps-cli

Version:

A cli tool to manage apps (and monday-code projects) in monday.com

57 lines (56 loc) 2.61 kB
import { Flags } from '@oclif/core'; import { StatusCodes } from 'http-status-codes'; import Status from '../code/status.js'; import { AuthenticatedCommand } from '../../commands-base/authenticated-command.js'; import { APP_VERSION_ID_TO_ENTER } from '../../consts/messages.js'; import { listAppBuilds } from '../../services/app-builds-service.js'; import { DynamicChoicesService } from '../../services/dynamic-choices-service.js'; import { HttpError } from '../../types/errors/index.js'; import logger from '../../utils/logger.js'; const printBuilds = (appBuilds) => { const appBuildsTable = appBuilds.map(appBuild => { return { category: appBuild.category, ...(appBuild.data?.liveUrl && { 'live url': appBuild.data?.liveUrl }), ...(appBuild.data?.url && { url: appBuild.data?.url }), ...(appBuild.data?.latestUrl && { 'static url (latest deployment)': appBuild.data?.latestUrl }), ...(appBuild.data?.sourceUrl && { 'source url (download)': appBuild.data?.sourceUrl }), ...(appBuild.data?.microFrontendName && { 'micro frontend name': appBuild.data?.microFrontendName }), }; }); logger.table(appBuildsTable); }; export default class AppVersionBuilds extends AuthenticatedCommand { static description = 'List all builds for a specific app version'; static examples = ['<%= config.bin %> <%= command.id %> -i APP_VERSION_ID']; static flags = AppVersionBuilds.serializeFlags({ appVersionId: Flags.integer({ char: 'i', aliases: ['v'], description: APP_VERSION_ID_TO_ENTER, }), }); DEBUG_TAG = 'app_version_builds'; async run() { const { flags } = await this.parse(Status); let appVersionId = flags.appVersionId; if (!appVersionId) { const appAndAppVersion = await DynamicChoicesService.chooseAppAndAppVersion(true, true); appVersionId = appAndAppVersion.appVersionId; } try { this.preparePrintCommand(this, { appVersionId }); const appReleases = await listAppBuilds(appVersionId); printBuilds(appReleases); } catch (error) { if (error instanceof HttpError && error.code === StatusCodes.NOT_FOUND) { logger.error(`No builds found for provided app version id - "${appVersionId}"`); } else { logger.error(`An unknown error happened while fetching builds for app version id - "${appVersionId}"`); } process.exit(0); } } }