@mintlify/common
Version:
Commonly shared code within Mintlify
26 lines (25 loc) • 1.14 kB
JavaScript
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;
};