UNPKG

@mintlify/prebuild

Version:

Helpful functions for Mintlify's prebuild step

38 lines (37 loc) 2.24 kB
import { getConfigPath } from '../../../utils.js'; import { DocsConfigUpdater } from '../ConfigUpdater.js'; import { generateAsyncApiDivisions } from './generateAsyncApiDivisions.js'; import { generateOpenApiDivisions } from './generateOpenApiDivisions.js'; import { getCustomLanguages } from './getCustomLanguages.js'; const NOT_CORRECT_PATH_ERROR = 'must be run in a directory where a docs.json file exists.'; export async function updateDocsConfigFile({ contentDirectoryPath, openApiFiles, asyncApiFiles, docsConfig, localSchema, disableOpenApi, strict, }) { const configPath = await getConfigPath(contentDirectoryPath, 'docs'); if (configPath == null && docsConfig == null) { throw Error(NOT_CORRECT_PATH_ERROR); } if (docsConfig == null && configPath) { docsConfig = await DocsConfigUpdater.getConfig(configPath, strict); } if (docsConfig == null) { throw Error(NOT_CORRECT_PATH_ERROR); } const customLanguages = await getCustomLanguages({ config: docsConfig, contentDirectoryPath }); const { newDocsConfig: docsConfigWithOpenApiPages, pagesAcc: pagesAccWithOpenApiPages, openApiFiles: newOpenApiFiles, } = !disableOpenApi ? await generateOpenApiDivisions(docsConfig, openApiFiles, undefined, localSchema) : { newDocsConfig: docsConfig, pagesAcc: {}, openApiFiles: openApiFiles }; const { newDocsConfig, pagesAcc: pagesAccWithAsyncApiPages, asyncApiFiles: newAsyncApiFiles, } = await generateAsyncApiDivisions(docsConfigWithOpenApiPages, asyncApiFiles, undefined, localSchema); const pagesAcc = { ...pagesAccWithOpenApiPages, ...pagesAccWithAsyncApiPages }; await DocsConfigUpdater.writeConfigFile(newDocsConfig); return { docsConfig: newDocsConfig, pagesAcc, newOpenApiFiles, newAsyncApiFiles, customLanguages, }; } export { generateOpenApiDivisions } from './generateOpenApiDivisions.js'; export { generateOpenApiFromDocsConfig } from './generateOpenApiFromDocsConfig.js'; export { generateAsyncApiDivisions } from './generateAsyncApiDivisions.js'; export { generateAsyncApiFromDocsConfig } from './generateAsyncApiFromDocsConfig.js'; export { getCustomLanguages } from './getCustomLanguages.js';