UNPKG

@mintlify/previewing

Version:

Preview Mintlify docs locally

57 lines (56 loc) 2.23 kB
import { getCustomLanguages } from '@mintlify/prebuild'; import fse from 'fs-extra'; import { join } from 'path'; import { CMD_EXEC_PATH, NEXT_PROPS_PATH } from '../../constants.js'; import { generateNav } from './generate.js'; import { getDocsState } from './getDocsState.js'; import { readJsonFile } from './utils.js'; export const updateGeneratedNav = async () => { const { pagesAcc, docsConfig } = await getDocsState(); const generatedDocsNav = await generateNav(pagesAcc, docsConfig); const targetDocsPath = join(NEXT_PROPS_PATH, 'generatedDocsNav.json'); await fse.outputFile(targetDocsPath, JSON.stringify(generatedDocsNav, null, 2), { flag: 'w', }); }; export const updateOpenApiFiles = async (providedOpenApiFiles) => { if (providedOpenApiFiles == undefined) { const { openApiFiles } = await getDocsState(); providedOpenApiFiles = openApiFiles; } const targetPath = join(NEXT_PROPS_PATH, 'openApiFiles.json'); await fse.outputFile(targetPath, JSON.stringify(providedOpenApiFiles, null, 2), { flag: 'w', }); }; export const upsertOpenApiFile = async (openApiFile) => { const sourcePath = join(NEXT_PROPS_PATH, 'openApiFiles.json'); let existingOpenApiFiles = []; try { existingOpenApiFiles = (await readJsonFile(sourcePath)); } catch { } const existingIndex = existingOpenApiFiles.findIndex((file) => file.originalFileLocation === openApiFile.originalFileLocation); if (existingIndex >= 0) { existingOpenApiFiles[existingIndex] = openApiFile; } else { existingOpenApiFiles.push(openApiFile); } await fse.outputFile(sourcePath, JSON.stringify(existingOpenApiFiles, null, 2), { flag: 'w', }); }; export const updateCustomLanguages = async (docsConfig) => { if (docsConfig == undefined) { docsConfig = (await getDocsState()).docsConfig; } const customLanguages = await getCustomLanguages({ config: docsConfig, contentDirectoryPath: CMD_EXEC_PATH, }); const targetPath = join(NEXT_PROPS_PATH, 'customLanguages.json'); await fse.outputFile(targetPath, JSON.stringify(customLanguages, null, 2), { flag: 'w', }); };