UNPKG

@mintlify/cli

Version:

The Mintlify CLI

50 lines (43 loc) 1.79 kB
import { getTargetMintVersion, downloadTargetMint } from '@mintlify/previewing'; import { execSync } from 'node:child_process'; import { buildLogger, getLatestCliVersion, getVersions } from './helpers.js'; export const update = async ({ packageName }: { packageName: string }) => { const logger = buildLogger(`Updating ${packageName} to the latest version...`); const { cli: existingCliVersion, client: existingClientVersion } = getVersions(); const latestCliVersion = getLatestCliVersion(packageName); const latestClientVersion = await getTargetMintVersion(logger); const isUpToDate = existingCliVersion && existingClientVersion && latestClientVersion && latestCliVersion && latestCliVersion.trim() === existingCliVersion.trim() && latestClientVersion.trim() === existingClientVersion.trim(); if (isUpToDate) { logger.succeed('Already up to date.'); return; } if (existingCliVersion && latestCliVersion.trim() !== existingCliVersion.trim()) { try { logger.text = `Updating ${packageName} package...`; execSync(`npm install -g ${packageName}@latest --silent`); } catch (err) { logger.fail(`Failed to update ${packageName}@latest`); process.exit(1); } } if (latestClientVersion && latestClientVersion !== existingClientVersion) { try { logger.text = `Updating Mintlify client to ${latestClientVersion}...`; await downloadTargetMint({ logger, targetVersion: latestClientVersion, existingVersion: existingClientVersion ?? null, }); } catch (err) { logger.fail(`Failed to update Mintlify client to ${latestClientVersion}`); process.exit(1); } } logger.succeed(`Updated ${packageName} to the latest version: ${latestCliVersion}`); };