(deploymentId: string)
| 753 | } |
| 754 | |
| 755 | export async function deploymentInfo(deploymentId: string) { |
| 756 | const cloudProviderType = deploymentId.slice(0, 3) as CloudProvider['type']; |
| 757 | if (!availableCloudProviders.includes(cloudProviderType)) { |
| 758 | throw new Error(`Invalid deployment ID '${deploymentId}'`); |
| 759 | } |
| 760 | |
| 761 | const spinner = logger.getSpinner(); |
| 762 | spinner.start(`Fetching info about deployment '${deploymentId}'`); |
| 763 | if (logger.inDebugMode()) { |
| 764 | spinner.info(); |
| 765 | } |
| 766 | |
| 767 | const goFetchDeployment = await go(() => fetchDeployment(cloudProviderType, deploymentId)); |
| 768 | if (!goFetchDeployment.success) { |
| 769 | spinner.stop(); |
| 770 | throw goFetchDeployment.error; |
| 771 | } |
| 772 | const { deployment } = goFetchDeployment.data; |
| 773 | |
| 774 | const { id, cloudProvider, airnodeAddress, stage, airnodeVersion, lastUpdate, versions } = deployment; |
| 775 | const sortedVersions = sortBy(versions, 'timestamp').reverse(); |
| 776 | const currentVersionId = sortedVersions.find((version) => version.timestamp === lastUpdate)!.id; |
| 777 | const table = new Table({ |
| 778 | head: ['Version ID', 'Deployment time'], |
| 779 | style: { |
| 780 | head: ['bold'], |
| 781 | }, |
| 782 | }); |
| 783 | table.push(...sortedVersions.map(({ id, timestamp }) => [id, timestampReadable(timestamp)])); |
| 784 | |
| 785 | spinner.succeed(); |
| 786 | logger.consoleLog(`Cloud provider: ${cloudProviderReadable(cloudProvider)}`); |
| 787 | logger.consoleLog(`Airnode address: ${airnodeAddress}`); |
| 788 | logger.consoleLog(`Stage: ${stage}`); |
| 789 | logger.consoleLog(`Airnode version: ${airnodeVersion}`); |
| 790 | logger.consoleLog(`Deployment ID: ${id}`); |
| 791 | const tableString = table.toString(); |
| 792 | const tableStringWithCurrent = tableString.replace(new RegExp(`(?<=${currentVersionId}.*?)\n`), ' (current)\n'); |
| 793 | logger.consoleLog(tableStringWithCurrent); |
| 794 | } |
| 795 | |
| 796 | export async function fetchFiles(deploymentId: string, outputDir: string, versionId?: string) { |
| 797 | const cloudProviderType = deploymentId.slice(0, 3) as CloudProvider['type']; |
no test coverage detected