import { BffCatalogEntity, BffCatalogRelatedEntity } from '../../types'; type CatalogEntitySchemaProps = { entity: BffCatalogEntity; relatedEntity: BffCatalogRelatedEntity | null; }; export function useCatalogEntitySchema({ entity, relatedEntity }: CatalogEntitySchemaProps) { const { schema } = entity.metadata || {}; let parsedSchema; try { parsedSchema = JSON.parse(schema); } catch (error) { parsedSchema = undefined; } let parsedApiDefinition: Record | undefined; try { parsedApiDefinition = relatedEntity?.metadata?.schema ? (JSON.parse(relatedEntity.metadata.schema) as Record) : undefined; } catch (err) { parsedApiDefinition = undefined; } const definition: Record = !parsedApiDefinition || relatedEntity?.metadata?.specType !== 'openapi' ? { openapi: '3.0.0', info: { version: '1', description: 'test', title: 'test' }, paths: {}, components: { schemas: {}, }, } : parsedApiDefinition; return { definition, parsedSchema, rawSchema: schema, }; }