Skip to content

Commit f0d0fc4

Browse files
authored
ensure readOnly/writeOnly are evaluated first (#848)
1 parent e4626d4 commit f0d0fc4

File tree

1 file changed

+36
-24
lines changed

1 file changed

+36
-24
lines changed

packages/docusaurus-plugin-openapi-docs/src/markdown/createSchema.ts

Lines changed: 36 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -594,6 +594,18 @@ function createEdges({
594594
required,
595595
discriminator,
596596
}: EdgeProps): any {
597+
if (SCHEMA_TYPE === "request") {
598+
if (schema.readOnly && schema.readOnly === true) {
599+
return undefined;
600+
}
601+
}
602+
603+
if (SCHEMA_TYPE === "response") {
604+
if (schema.writeOnly && schema.writeOnly === true) {
605+
return undefined;
606+
}
607+
}
608+
597609
const schemaName = getSchemaName(schema);
598610
if (discriminator !== undefined && discriminator.propertyName === name) {
599611
return createPropertyDiscriminator(
@@ -619,6 +631,19 @@ function createEdges({
619631
const { mergedSchemas }: { mergedSchemas: SchemaObject } = mergeAllOf(
620632
schema.allOf
621633
);
634+
635+
if (SCHEMA_TYPE === "request") {
636+
if (mergedSchemas.readOnly && mergedSchemas.readOnly === true) {
637+
return undefined;
638+
}
639+
}
640+
641+
if (SCHEMA_TYPE === "response") {
642+
if (mergedSchemas.writeOnly && mergedSchemas.writeOnly === true) {
643+
return undefined;
644+
}
645+
}
646+
622647
const mergedSchemaName = getSchemaName(mergedSchemas);
623648
if (
624649
mergedSchemas.oneOf !== undefined ||
@@ -664,18 +689,6 @@ function createEdges({
664689
);
665690
}
666691

667-
if (SCHEMA_TYPE === "request") {
668-
if (mergedSchemas.readOnly && mergedSchemas.readOnly === true) {
669-
return undefined;
670-
}
671-
}
672-
673-
if (SCHEMA_TYPE === "response") {
674-
if (mergedSchemas.writeOnly && mergedSchemas.writeOnly === true) {
675-
return undefined;
676-
}
677-
}
678-
679692
return create("SchemaItem", {
680693
collapsible: false,
681694
name,
@@ -727,18 +740,6 @@ function createEdges({
727740
);
728741
}
729742

730-
if (SCHEMA_TYPE === "request") {
731-
if (schema.readOnly && schema.readOnly === true) {
732-
return undefined;
733-
}
734-
}
735-
736-
if (SCHEMA_TYPE === "response") {
737-
if (schema.writeOnly && schema.writeOnly === true) {
738-
return undefined;
739-
}
740-
}
741-
742743
// primitives and array of non-objects
743744
return create("SchemaItem", {
744745
collapsible: false,
@@ -758,6 +759,17 @@ export function createNodes(
758759
schemaType: "request" | "response"
759760
): any {
760761
SCHEMA_TYPE = schemaType;
762+
if (SCHEMA_TYPE === "request") {
763+
if (schema.readOnly && schema.readOnly === true) {
764+
return undefined;
765+
}
766+
}
767+
768+
if (SCHEMA_TYPE === "response") {
769+
if (schema.writeOnly && schema.writeOnly === true) {
770+
return undefined;
771+
}
772+
}
761773
const nodes = [];
762774
// if (schema.discriminator !== undefined) {
763775
// return createDiscriminator(schema);

0 commit comments

Comments
 (0)