UNPKG

@mintlify/previewing

Version:

Preview Mintlify docs locally

57 lines (56 loc) 2.1 kB
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'; };