mirror of
https://github.com/GitbookIO/gitbook.git
synced 2026-09-12 05:48:57 +00:00
Handle nullish OpenAPI mediaTypeObject (#3389)
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@gitbook/react-openapi': patch
|
||||
'gitbook': patch
|
||||
---
|
||||
|
||||
Handle nullish OpenAPI mediaTypeObject
|
||||
@@ -11,14 +11,14 @@ import { parameterToProperty, resolveDescription } from './utils';
|
||||
*/
|
||||
export function OpenAPIResponse(props: {
|
||||
response: OpenAPIV3.ResponseObject;
|
||||
mediaType: OpenAPIV3.MediaTypeObject;
|
||||
mediaType: OpenAPIV3.MediaTypeObject | null;
|
||||
context: OpenAPIClientContext;
|
||||
}) {
|
||||
const { response, context, mediaType } = props;
|
||||
const headers = Object.entries(response.headers ?? {}).map(
|
||||
([name, header]) => [name, header ?? {}] as const
|
||||
);
|
||||
const content = Object.entries(mediaType.schema ?? {});
|
||||
const content = Object.entries(mediaType?.schema ?? {});
|
||||
|
||||
const description = resolveDescription(response);
|
||||
|
||||
@@ -62,7 +62,7 @@ export function OpenAPIResponse(props: {
|
||||
/>
|
||||
</OpenAPIDisclosure>
|
||||
) : null}
|
||||
{mediaType.schema && (
|
||||
{mediaType?.schema && (
|
||||
<div className="openapi-responsebody">
|
||||
<OpenAPISchemaProperties
|
||||
id={`response-${context.blockKey}`}
|
||||
|
||||
@@ -99,7 +99,7 @@ export function OpenAPIResponseExample(props: {
|
||||
function OpenAPIResponse(props: {
|
||||
context: OpenAPIContext;
|
||||
content: {
|
||||
[media: string]: OpenAPIV3.MediaTypeObject;
|
||||
[media: string]: OpenAPIV3.MediaTypeObject | null;
|
||||
};
|
||||
}) {
|
||||
const { context, content } = props;
|
||||
@@ -113,6 +113,15 @@ function OpenAPIResponse(props: {
|
||||
|
||||
const tabs = entries.map((entry) => {
|
||||
const [mediaType, mediaTypeObject] = entry;
|
||||
|
||||
if (!mediaTypeObject) {
|
||||
return {
|
||||
key: mediaType,
|
||||
label: mediaType,
|
||||
body: <OpenAPIEmptyExample context={context} />,
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
key: mediaType,
|
||||
label: mediaType,
|
||||
|
||||
@@ -19,9 +19,9 @@ export function OpenAPIWebhookExample(props: {
|
||||
}
|
||||
|
||||
return Object.entries(
|
||||
operation.requestBody.content as Record<string, OpenAPIV3.MediaTypeObject>
|
||||
operation.requestBody.content as Record<string, OpenAPIV3.MediaTypeObject | null>
|
||||
).map(([key, value]) => {
|
||||
const schema = value.schema;
|
||||
const schema = value?.schema;
|
||||
|
||||
if (!schema) {
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user