@mintlify/cli
Version:
The Mintlify CLI
69 lines (68 loc) • 3.03 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import { getTargetMintVersion, downloadTargetMint } from '@mintlify/previewing';
import { execSync } from 'node:child_process';
import { buildLogger, getLatestCliVersion, getVersions } from './helpers.js';
export const update = (_a) => __awaiter(void 0, [_a], void 0, function* ({ packageName, silent, }) {
let logger = undefined;
if (!silent) {
logger = buildLogger(`Updating ${packageName} to the latest version...`);
}
const { cli: existingCliVersion, client: existingClientVersion } = getVersions();
const latestCliVersion = getLatestCliVersion(packageName);
const latestClientVersion = yield getTargetMintVersion(logger);
const isUpToDate = existingCliVersion &&
existingClientVersion &&
latestClientVersion &&
latestCliVersion &&
latestCliVersion.trim() === existingCliVersion.trim() &&
latestClientVersion.trim() === existingClientVersion.trim();
if (isUpToDate) {
if (!silent && logger) {
logger.succeed('Already up to date.');
}
return;
}
if (existingCliVersion && latestCliVersion.trim() !== existingCliVersion.trim()) {
try {
if (logger) {
logger.text = `Updating ${packageName} package...`;
}
execSync(`npm install -g ${packageName}@latest --silent`);
}
catch (err) {
if (logger) {
logger.fail(`Failed to update ${packageName}@latest`);
}
process.exit(1);
}
}
if (latestClientVersion && latestClientVersion !== existingClientVersion) {
try {
if (logger) {
logger.text = `Updating Mintlify client to ${latestClientVersion}...`;
}
yield downloadTargetMint({
logger,
targetVersion: latestClientVersion,
existingVersion: existingClientVersion !== null && existingClientVersion !== void 0 ? existingClientVersion : null,
});
}
catch (err) {
if (logger) {
logger.fail(`Failed to update Mintlify client to ${latestClientVersion}`);
}
process.exit(1);
}
}
if (logger) {
logger.succeed(`Updated ${packageName} to the latest version: ${latestCliVersion}`);
}
});