UNPKG

@mintlify/prebuild

Version:

Helpful functions for Mintlify's prebuild step

39 lines (38 loc) 1.38 kB
import { getOpenApiDocumentFromUrl, isAllowedLocalSchemaUrl } from '@mintlify/common'; export const getOpenApiFilesFromConfig = async (type, config, localSchema) => { let openapi; if (type === 'docs') { openapi = config.api?.openapi; } else { openapi = config.openapi; } const openApiFiles = []; // Download OpenApi file if url is provided async function addOpenApiFileFromUrl(openapi) { const specFromUrl = await getOpenApiDocumentFromUrl(openapi); openApiFiles.push({ filename: openapi, spec: specFromUrl, originalFileLocation: openapi, }); } if (openapi) { if (typeof openapi === 'string' && isAllowedLocalSchemaUrl(openapi, localSchema)) { await addOpenApiFileFromUrl(openapi); } else if (Array.isArray(openapi)) { for (const openapiUrl of openapi) { if (typeof openapiUrl === 'string' && isAllowedLocalSchemaUrl(openapiUrl, localSchema)) { await addOpenApiFileFromUrl(openapiUrl); } } } else if (typeof openapi === 'object' && 'source' in openapi && isAllowedLocalSchemaUrl(openapi.source, localSchema)) { await addOpenApiFileFromUrl(openapi.source); } } return openApiFiles; };