@mintlify/previewing
Version:
Preview Mintlify docs locally
57 lines (56 loc) • 2.23 kB
JavaScript
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',
});
};