@mintlify/previewing
Version:
Preview Mintlify docs locally
37 lines (36 loc) • 2.15 kB
JavaScript
import { getLatestClientVersion, tryDownloadTargetMint, getCompatibleClientVersion } from "./client.js";
import { LOCAL_LINKED_CLI_VERSION } from "../constants.js";
export const silentUpdateClient = async ({ versionString, clientVersion, cliVersion }) => {
const latestClientVersion = await getLatestClientVersion();
const hasLatestClientVersion = latestClientVersion && versionString && versionString.trim() === latestClientVersion.trim();
if (clientVersion) {
// always download specific client version if provided
const error = await tryDownloadTargetMint({ targetVersion: clientVersion, existingVersion: versionString });
return { needsUpdate: false, error };
}
else if ((!versionString || cliVersion === LOCAL_LINKED_CLI_VERSION) && latestClientVersion) {
// if no version exists, download latest
const error = await tryDownloadTargetMint({ targetVersion: latestClientVersion, existingVersion: null });
return { needsUpdate: false, error };
}
else if (cliVersion && !hasLatestClientVersion) {
// if not on latest, check whether to download latest or max
const maxClientVersion = await getCompatibleClientVersion({ cliVersion });
const hasMaxClientVersion = maxClientVersion && versionString && versionString.trim() === maxClientVersion.trim();
if (maxClientVersion === "latest" && latestClientVersion) {
// if latest, download latest
const error = await tryDownloadTargetMint({ targetVersion: latestClientVersion, existingVersion: versionString });
return { needsUpdate: false, error };
}
else if (maxClientVersion && !hasMaxClientVersion) {
// if maxxed out, needs update
const error = await tryDownloadTargetMint({ targetVersion: maxClientVersion, existingVersion: versionString });
return { needsUpdate: true, error };
}
else {
// if compatible client version not found, needs update
return { needsUpdate: true, error: undefined };
}
}
return { needsUpdate: false, error: undefined };
};