From 7a9b18de79c0511c8c8ece969423d6183b459302 Mon Sep 17 00:00:00 2001 From: Steven Serrata Date: Mon, 22 Jul 2024 11:00:30 -0500 Subject: [PATCH 1/5] add support for anyoneof object primitive --- .../docusaurus-plugin-openapi-docs/src/markdown/createSchema.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/docusaurus-plugin-openapi-docs/src/markdown/createSchema.ts b/packages/docusaurus-plugin-openapi-docs/src/markdown/createSchema.ts index 7331ed3c2..1fc128ce7 100644 --- a/packages/docusaurus-plugin-openapi-docs/src/markdown/createSchema.ts +++ b/packages/docusaurus-plugin-openapi-docs/src/markdown/createSchema.ts @@ -92,6 +92,7 @@ function createAnyOneOf(schema: SchemaObject): any { anyOneSchema.type === "string" || anyOneSchema.type === "number" || anyOneSchema.type === "integer" || + anyOneSchema.type === "object" || anyOneSchema.type === "boolean" ) { anyOneChildren.push(createNodes(anyOneSchema, SCHEMA_TYPE)); From b5bcd2bf122f51903a752c9f941dfbf592f16010 Mon Sep 17 00:00:00 2001 From: Steven Serrata Date: Mon, 22 Jul 2024 11:02:51 -0500 Subject: [PATCH 2/5] add example response for testing --- demo/examples/petstore.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/demo/examples/petstore.yaml b/demo/examples/petstore.yaml index c31ac04ae..1382c5b93 100644 --- a/demo/examples/petstore.yaml +++ b/demo/examples/petstore.yaml @@ -115,6 +115,17 @@ paths: description: Add new pet to the store inventory. operationId: addPet responses: + "200": + description: All good + content: + application/json: + schema: + type: object + properties: + data: + oneOf: + - type: string + - type: object "405": description: Invalid input security: From fa8ff33600f611d1e31a924e2c227c65ea50eb1b Mon Sep 17 00:00:00 2001 From: Steven Serrata Date: Mon, 22 Jul 2024 11:08:19 -0500 Subject: [PATCH 3/5] update test snapshot --- .../src/markdown/__snapshots__/createSchema.test.ts.snap | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/docusaurus-plugin-openapi-docs/src/markdown/__snapshots__/createSchema.test.ts.snap b/packages/docusaurus-plugin-openapi-docs/src/markdown/__snapshots__/createSchema.test.ts.snap index 9bf878b02..e30a55573 100644 --- a/packages/docusaurus-plugin-openapi-docs/src/markdown/__snapshots__/createSchema.test.ts.snap +++ b/packages/docusaurus-plugin-openapi-docs/src/markdown/__snapshots__/createSchema.test.ts.snap @@ -21,6 +21,9 @@ Array [ qualifierMessage={undefined} schema={{ type: \\"number\\" }} > +
+ object +
  • From 45fe6e1bd2ecb72e18ec729778145aefc3e8a304 Mon Sep 17 00:00:00 2001 From: Steven Serrata Date: Mon, 22 Jul 2024 11:30:23 -0500 Subject: [PATCH 4/5] handle object primitive separately to ensure no properties exist --- .../src/markdown/createSchema.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/docusaurus-plugin-openapi-docs/src/markdown/createSchema.ts b/packages/docusaurus-plugin-openapi-docs/src/markdown/createSchema.ts index 1fc128ce7..eb42062f0 100644 --- a/packages/docusaurus-plugin-openapi-docs/src/markdown/createSchema.ts +++ b/packages/docusaurus-plugin-openapi-docs/src/markdown/createSchema.ts @@ -73,6 +73,15 @@ function createAnyOneOf(schema: SchemaObject): any { : `MOD${index + 1}`; const anyOneChildren = []; + if ( + anyOneSchema.type === "object" && + !anyOneSchema.properties && + !anyOneSchema.allOf && + !anyOneSchema.items + ) { + anyOneChildren.push(createNodes(anyOneSchema, SCHEMA_TYPE)); + } + if (anyOneSchema.properties !== undefined) { anyOneChildren.push(createProperties(anyOneSchema)); delete anyOneSchema.properties; @@ -92,7 +101,6 @@ function createAnyOneOf(schema: SchemaObject): any { anyOneSchema.type === "string" || anyOneSchema.type === "number" || anyOneSchema.type === "integer" || - anyOneSchema.type === "object" || anyOneSchema.type === "boolean" ) { anyOneChildren.push(createNodes(anyOneSchema, SCHEMA_TYPE)); From 6009db029ace5ec38917cf360526eed93eb8d6fc Mon Sep 17 00:00:00 2001 From: Steven Serrata Date: Mon, 22 Jul 2024 11:34:11 -0500 Subject: [PATCH 5/5] update test snapshot --- .../src/markdown/__snapshots__/createSchema.test.ts.snap | 3 --- 1 file changed, 3 deletions(-) diff --git a/packages/docusaurus-plugin-openapi-docs/src/markdown/__snapshots__/createSchema.test.ts.snap b/packages/docusaurus-plugin-openapi-docs/src/markdown/__snapshots__/createSchema.test.ts.snap index e30a55573..9bf878b02 100644 --- a/packages/docusaurus-plugin-openapi-docs/src/markdown/__snapshots__/createSchema.test.ts.snap +++ b/packages/docusaurus-plugin-openapi-docs/src/markdown/__snapshots__/createSchema.test.ts.snap @@ -21,9 +21,6 @@ Array [ qualifierMessage={undefined} schema={{ type: \\"number\\" }} > -
    - object -