UNPKG

@mintlify/previewing

Version:

Preview Mintlify docs locally

70 lines (69 loc) 2.63 kB
import os from 'os'; import path from 'path'; import * as url from 'url'; // package installation location export const INSTALL_PATH = url.fileURLToPath(new URL('.', import.meta.url)); export const HOME_DIR = os.homedir(); export const DOT_MINTLIFY = path.join(HOME_DIR, '.mintlify'); export let PREVIEW_PATH; export let PREVIEW_LAST_PATH; export let MINT_PATH; export let VERSION_PATH; export let CLIENT_PATH; export let NEXT_SIDE_EFFECT_PATH; export let NEXT_ROUTER_SERVER_PATH; export let NEXT_CONFIG_PATH; export let NEXT_PUBLIC_PATH; export let NEXT_PROPS_PATH; export let TAR_PATH; const setPreviewPath = (name) => { PREVIEW_PATH = path.join(DOT_MINTLIFY, 'previews', name); PREVIEW_LAST_PATH = `${PREVIEW_PATH}-last`; MINT_PATH = path.join(PREVIEW_PATH, 'mint'); VERSION_PATH = path.join(MINT_PATH, 'mint-version.txt'); CLIENT_PATH = path.join(MINT_PATH, 'apps', 'client'); const nextDistServerPath = path.join(MINT_PATH, 'node_modules', 'next', 'dist', 'server'); NEXT_SIDE_EFFECT_PATH = path.join(nextDistServerPath, 'next.js'); NEXT_ROUTER_SERVER_PATH = path.join(nextDistServerPath, 'lib', 'router-server.js'); NEXT_CONFIG_PATH = path.join(CLIENT_PATH, '.next', 'required-server-files.json'); NEXT_PUBLIC_PATH = path.join(CLIENT_PATH, 'public'); NEXT_PROPS_PATH = path.join(CLIENT_PATH, 'src', '_props'); TAR_PATH = path.join(PREVIEW_PATH, 'mint.tar.gz'); }; // A port can only belong to one local server at a time, so it gives each running // preview an isolated workspace while still allowing warm starts to reuse files. export const configurePreviewPath = (port = 3000) => { const numericPort = Number(port); if (!Number.isInteger(numericPort) || numericPort < 1 || numericPort > 65535) { throw new Error(`invalid preview port: ${port}`); } setPreviewPath(String(numericPort)); }; export const configureSharedPreviewPath = () => { setPreviewPath('shared'); }; configureSharedPreviewPath(); export const MINT_CLIENT_RELEASES_CLOUDFRONT_URL = 'https://releases.mintlify.com'; export const TARGET_MINT_VERSION_URL = `${MINT_CLIENT_RELEASES_CLOUDFRONT_URL}/mint-version.txt`; export const MINT_VERSION_MAP_URL = `${MINT_CLIENT_RELEASES_CLOUDFRONT_URL}/mint-version-map.json`; // command execution location export const CMD_EXEC_PATH = process.cwd(); export const SUPPORTED_MEDIA_EXTENSIONS = [ 'jpeg', 'jpg', 'jfif', 'pjpeg', 'pjp', 'png', 'svg', 'svgz', 'ico', 'webp', 'gif', 'apng', 'avif', 'bmp', 'mp4', 'mov', ]; export const LOCAL_LINKED_CLI_VERSION = 'linked to local package';