UNPKG

@mintlify/common

Version:

Commonly shared code within Mintlify

26 lines (25 loc) 1.14 kB
import { parseAsyncApiString } from '../asyncapi/parseAsyncApiString.js'; import { parseOpenApiSchemaString, parseOpenApiString } from '../openapi/parseOpenApiString.js'; export const parseApiTargetFromMetadata = (metadata) => { const openapiSchema = metadata['openapi-schema']; if (typeof openapiSchema === 'string' && openapiSchema.length > 0) { return Object.assign({ type: 'schema' }, parseOpenApiSchemaString(openapiSchema)); } const openapi = metadata.openapi; if (typeof openapi === 'string' && openapi.length > 0) { try { return Object.assign({ type: 'operation' }, parseOpenApiString(openapi)); } catch (error) { console.error(`unable to parse value "${openapi}" for field "openapi":`, error); return undefined; } } const asyncapi = metadata.asyncapi; if (typeof asyncapi === 'string' && asyncapi.length > 0) { const asyncApiMetadata = parseAsyncApiString(asyncapi); return asyncApiMetadata ? Object.assign({ type: 'asyncapi' }, asyncApiMetadata) : undefined; } return undefined; };