@mintlify/previewing
Version:
Preview Mintlify docs locally
57 lines (56 loc) • 2.1 kB
JavaScript
import fse from 'fs-extra';
import path from 'path';
import { PREVIEW_PATH, PREVIEW_LAST_PATH, MINT_CLIENT_RELEASES_CLOUDFRONT_URL, VERSION_PATH, MINT_PATH, DOT_MINTLIFY, } from './constants.js';
export const getFileExtension = (filename) => {
const ext = filename.substring(filename.lastIndexOf('.') + 1, filename.length);
if (filename === ext)
return undefined;
return ext;
};
export const maybeFixMissingWindowsEnvVar = () => {
if (process.platform === 'win32' &&
!('SYSTEMROOT' in process.env) &&
'SystemRoot' in process.env) {
process.env.SYSTEMROOT = process.env.SystemRoot;
}
};
export const restoreMintlifyLast = () => {
if (fse.existsSync(PREVIEW_LAST_PATH)) {
fse.removeSync(PREVIEW_PATH);
fse.moveSync(PREVIEW_LAST_PATH, PREVIEW_PATH);
}
};
// Copy the shared client into a port workspace when mint update left it there.
export const seedPreviewFromShared = ({ sharedMintPath = path.join(DOT_MINTLIFY, 'previews', 'shared', 'mint'), mintPath = MINT_PATH, versionPath = VERSION_PATH, } = {}) => {
if (mintPath === sharedMintPath) {
return;
}
const sharedVersionPath = path.join(sharedMintPath, 'mint-version.txt');
if (!fse.existsSync(sharedVersionPath)) {
return;
}
const sharedVersion = fse.readFileSync(sharedVersionPath, 'utf8').trim();
if (!sharedVersion) {
return;
}
const portVersion = fse.existsSync(versionPath)
? fse.readFileSync(versionPath, 'utf8').trim()
: '';
if (portVersion && portVersion.localeCompare(sharedVersion, undefined, { numeric: true }) >= 0) {
return;
}
fse.removeSync(mintPath);
fse.copySync(sharedMintPath, mintPath);
};
export const getTarUrl = (version) => {
return `${MINT_CLIENT_RELEASES_CLOUDFRONT_URL}/mint-${version}.tar.gz`;
};
export const getClientVersion = () => {
if (process.env.CLI_TEST_MODE === 'true') {
return 'test-client';
}
if (fse.existsSync(VERSION_PATH)) {
return fse.readFileSync(VERSION_PATH, 'utf8');
}
return 'none';
};