From 7446c516b56a6ffc26718da4eacdec78fb83ee47 Mon Sep 17 00:00:00 2001 From: Steven Serrata Date: Wed, 11 Dec 2024 10:49:56 -0600 Subject: [PATCH] add additional fallback case where propertyName not defined in properties and handle 0-length mapping --- .../src/theme/Schema/index.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/docusaurus-theme-openapi-docs/src/theme/Schema/index.tsx b/packages/docusaurus-theme-openapi-docs/src/theme/Schema/index.tsx index 0538aecce..e2cbc831f 100644 --- a/packages/docusaurus-theme-openapi-docs/src/theme/Schema/index.tsx +++ b/packages/docusaurus-theme-openapi-docs/src/theme/Schema/index.tsx @@ -319,7 +319,7 @@ const DiscriminatorNode: React.FC = ({ // default to empty object if no parent-level properties exist const discriminatorProperty = schema.properties - ? schema.properties![discriminator.propertyName] + ? (schema.properties![discriminator.propertyName] ?? {}) : {}; if (schema.allOf) { @@ -341,6 +341,12 @@ const DiscriminatorNode: React.FC = ({ discriminator.mapping = inferredMapping; } + // handle invalid discriminator definition where no discriminated schemas are defined + if (Object.keys(discriminator.mapping).length === 0) { + delete schema.discriminator; + return ; + } + // Merge sub schema discriminator property with parent Object.keys(discriminator.mapping).forEach((key) => { const subSchema = discriminator.mapping[key];