@mintlify/prebuild
Version:
Helpful functions for Mintlify's prebuild step
38 lines (37 loc) • 2.24 kB
JavaScript
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';