async function displayListPrompt()

in src/commands/deployments/list.ts [59:112]


async function displayListPrompt(routineDetail: GetRoutineRes) {
  const isCanary =
    (routineDetail.data.Envs[0].CanaryAreaList ?? []).length !== 0;
  const canaryEnv = routineDetail.data.Envs[0];
  const stagingEnv = routineDetail.data.Envs[1];

  const server = await ApiService.getInstance();
  const res: GetRoutineStagingEnvIpRes | null =
    await server.getRoutineStagingEnvIp();

  const stagingIpList = res?.data?.IPV4 ?? [];
  const coloredStagingIpList = stagingIpList.map((ip) => {
    return chalk.green(ip);
  });

  const showEnvTable = (version: string, spec: string, region?: string) => {
    const data: Record<string, string>[] = [
      { Version: version },
      { Specification: spec }
    ];

    if (region) {
      data.push({ Region: region });
    }

    logger.table([], data);
  };

  logger.log(chalk.bold(t('deploy_env_staging').d('Staging')));
  if (stagingIpList.length > 0) {
    logger.log(`Staging IP: ${coloredStagingIpList.join(', ')}`);
  }
  showEnvTable(stagingEnv.CodeVersion, stagingEnv.SpecName);
  logger.block();
  logger.log(
    `${chalk.bold(`${t('deploy_env_production').d('Production')} ${!isCanary ? chalk.green('●') : ''}`)}`
  );
  showEnvTable(canaryEnv.CodeVersion, canaryEnv.SpecName);
  logger.block();

  logger.log(
    `${chalk.bold(`${t('deploy_env_canary').d('Canary')} ${isCanary ? chalk.green('●') : ''}`)}`
  );

  showEnvTable(
    canaryEnv.CanaryCodeVersion ?? '',
    canaryEnv.SpecName,
    canaryEnv.CanaryAreaList?.join(', ')
  );
  logger.info(
    `${t('show_default_url').d(`You can visit:`)} ${chalk.yellowBright(routineDetail.data.DefaultRelatedRecord)}`
  );
  logger.block();
}