@mintlify/previewing
Version:
Preview Mintlify docs locally
30 lines (29 loc) • 1.64 kB
JavaScript
import { generateOpenApiAnchorsOrTabs, categorizeFilePaths, generateOpenApiDivisions, getMintIgnore, MintConfigUpdater, DocsConfigUpdater, } from '@mintlify/prebuild';
import { upgradeToDocsConfig } from '@mintlify/validation';
import fse from 'fs-extra';
import { join } from 'path';
import { CMD_EXEC_PATH, CLIENT_PATH } from '../../constants.js';
export const getDocsState = async () => {
const mintIgnore = await getMintIgnore(CMD_EXEC_PATH);
const { openApiFiles } = await categorizeFilePaths(CMD_EXEC_PATH, mintIgnore);
try {
const mintConfig = await MintConfigUpdater.getConfig(join(CMD_EXEC_PATH, 'mint.json'));
const docsConfig = upgradeToDocsConfig(mintConfig);
const { mintConfig: newMintConfig } = await generateOpenApiAnchorsOrTabs(mintConfig, openApiFiles, CLIENT_PATH);
const { newDocsConfig, pagesAcc, openApiFiles: newOpenApiFiles, } = await generateOpenApiDivisions(docsConfig, openApiFiles, CLIENT_PATH);
return {
mintConfig: newMintConfig,
pagesAcc,
openApiFiles: newOpenApiFiles,
docsConfig: newDocsConfig,
};
}
catch {
const docsJsonPath = join(CMD_EXEC_PATH, 'docs.json');
if (!(await fse.pathExists(docsJsonPath)))
throw new Error('No config found');
const docsConfig = await DocsConfigUpdater.getConfig(docsJsonPath);
const { newDocsConfig, pagesAcc, openApiFiles: newOpenApiFiles, } = await generateOpenApiDivisions(docsConfig, openApiFiles, CLIENT_PATH);
return { pagesAcc, openApiFiles: newOpenApiFiles, docsConfig: newDocsConfig };
}
};