docusaurus-theme-openapi-docs 0.0.0-1155 → 0.0.0-1156
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/markdown/schema.js +16 -4
- package/lib/theme/ResponseHeaders/index.js +0 -1
- package/lib/theme/Schema/index.d.ts +1 -1
- package/lib/theme/Schema/index.js +1 -15
- package/lib/theme/SchemaItem/index.js +6 -1
- package/lib/theme/translationIds.d.ts +3 -0
- package/lib/theme/translationIds.js +3 -0
- package/package.json +3 -3
- package/src/markdown/schema.ts +17 -9
- package/src/theme/ResponseHeaders/index.tsx +1 -2
- package/src/theme/Schema/index.tsx +6 -19
- package/src/theme/SchemaItem/index.tsx +6 -1
- package/src/theme/translationIds.ts +3 -0
package/lib/markdown/schema.js
CHANGED
|
@@ -121,14 +121,22 @@ function getQualifierMessage(schema) {
|
|
|
121
121
|
let lengthQualifier = "";
|
|
122
122
|
let minLength;
|
|
123
123
|
let maxLength;
|
|
124
|
+
const charactersMessage = (0, Translate_1.translate)({
|
|
125
|
+
id: translationIds_1.OPENAPI_SCHEMA_ITEM.CHARACTERS,
|
|
126
|
+
message: "characters",
|
|
127
|
+
});
|
|
128
|
+
const nonEmptyMessage = (0, Translate_1.translate)({
|
|
129
|
+
id: translationIds_1.OPENAPI_SCHEMA_ITEM.NON_EMPTY,
|
|
130
|
+
message: "non-empty",
|
|
131
|
+
});
|
|
124
132
|
if (schema.minLength && schema.minLength > 1) {
|
|
125
|
-
minLength = `\`>= ${schema.minLength}
|
|
133
|
+
minLength = `\`>= ${schema.minLength} ${charactersMessage}\``;
|
|
126
134
|
}
|
|
127
135
|
if (schema.minLength && schema.minLength === 1) {
|
|
128
|
-
minLength =
|
|
136
|
+
minLength = `\`${nonEmptyMessage}\``;
|
|
129
137
|
}
|
|
130
138
|
if (schema.maxLength) {
|
|
131
|
-
maxLength = `\`<= ${schema.maxLength}
|
|
139
|
+
maxLength = `\`<= ${schema.maxLength} ${charactersMessage}\``;
|
|
132
140
|
}
|
|
133
141
|
if (minLength && !maxLength) {
|
|
134
142
|
lengthQualifier += minLength;
|
|
@@ -178,7 +186,11 @@ function getQualifierMessage(schema) {
|
|
|
178
186
|
qualifierGroups.push(minmaxQualifier);
|
|
179
187
|
}
|
|
180
188
|
if (schema.pattern) {
|
|
181
|
-
|
|
189
|
+
const expressionMessage = (0, Translate_1.translate)({
|
|
190
|
+
id: translationIds_1.OPENAPI_SCHEMA_ITEM.EXPRESSION,
|
|
191
|
+
message: "Value must match regular expression",
|
|
192
|
+
});
|
|
193
|
+
qualifierGroups.push(`${expressionMessage} \`${schema.pattern}\``);
|
|
182
194
|
}
|
|
183
195
|
// Check if discriminator mapping
|
|
184
196
|
const discriminator = schema;
|
|
@@ -27,7 +27,6 @@ const ResponseHeaders = ({ responseHeaders }) => {
|
|
|
27
27
|
name: name,
|
|
28
28
|
collapsible: false,
|
|
29
29
|
schemaName: (0, schema_1.getSchemaName)(schema),
|
|
30
|
-
qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
|
|
31
30
|
schema: schema,
|
|
32
31
|
discriminator: false,
|
|
33
32
|
children: null,
|
|
@@ -84,8 +84,8 @@ const translationIds_1 = require("@theme/translationIds");
|
|
|
84
84
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
85
85
|
const allof_merge_1 = require("allof-merge");
|
|
86
86
|
const clsx_1 = __importDefault(require("clsx"));
|
|
87
|
-
const schema_1 = require("docusaurus-plugin-openapi-docs/lib/markdown/schema");
|
|
88
87
|
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
88
|
+
const schema_1 = require("../../markdown/schema");
|
|
89
89
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
90
90
|
// const jsonSchemaMergeAllOf = require("json-schema-merge-allof");
|
|
91
91
|
const mergeAllOf = (allOf) => {
|
|
@@ -311,9 +311,6 @@ const AnyOneOf = ({ schema, schemaType, schemaPath }) => {
|
|
|
311
311
|
collapsible: false,
|
|
312
312
|
name: undefined,
|
|
313
313
|
schemaName: computedSchemaName,
|
|
314
|
-
qualifierMessage: (0, schema_1.getQualifierMessage)(
|
|
315
|
-
anyOneSchema
|
|
316
|
-
),
|
|
317
314
|
schema: anyOneSchema,
|
|
318
315
|
discriminator: false,
|
|
319
316
|
children: null,
|
|
@@ -327,9 +324,6 @@ const AnyOneOf = ({ schema, schemaType, schemaPath }) => {
|
|
|
327
324
|
collapsible: false,
|
|
328
325
|
name: undefined,
|
|
329
326
|
schemaName: computedSchemaName,
|
|
330
|
-
qualifierMessage: (0, schema_1.getQualifierMessage)(
|
|
331
|
-
anyOneSchema
|
|
332
|
-
),
|
|
333
327
|
schema: anyOneSchema,
|
|
334
328
|
discriminator: false,
|
|
335
329
|
children: null,
|
|
@@ -398,7 +392,6 @@ const Properties = ({ schema, schemaType, schemaPath }) => {
|
|
|
398
392
|
name: "",
|
|
399
393
|
required: false,
|
|
400
394
|
schemaName: "object",
|
|
401
|
-
qualifierMessage: undefined,
|
|
402
395
|
schema: {},
|
|
403
396
|
});
|
|
404
397
|
}
|
|
@@ -594,7 +587,6 @@ const AdditionalProperties = ({ schema, schemaType }) => {
|
|
|
594
587
|
name: "property name*",
|
|
595
588
|
required: false,
|
|
596
589
|
schemaName: "any",
|
|
597
|
-
qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
|
|
598
590
|
schema: schema,
|
|
599
591
|
collapsible: false,
|
|
600
592
|
discriminator: false,
|
|
@@ -635,7 +627,6 @@ const AdditionalProperties = ({ schema, schemaType }) => {
|
|
|
635
627
|
name: "property name*",
|
|
636
628
|
required: false,
|
|
637
629
|
schemaName: schemaName,
|
|
638
|
-
qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
|
|
639
630
|
schema: additionalProperties,
|
|
640
631
|
collapsible: false,
|
|
641
632
|
discriminator: false,
|
|
@@ -740,7 +731,6 @@ const Items = ({ schema, schemaType, schemaPath }) => {
|
|
|
740
731
|
collapsible: false,
|
|
741
732
|
name: "", // No name for array items
|
|
742
733
|
schemaName: (0, schema_1.getSchemaName)(itemsSchema),
|
|
743
|
-
qualifierMessage: (0, schema_1.getQualifierMessage)(itemsSchema),
|
|
744
734
|
schema: itemsSchema,
|
|
745
735
|
discriminator: false,
|
|
746
736
|
children: null,
|
|
@@ -861,7 +851,6 @@ const SchemaEdge = ({
|
|
|
861
851
|
name: name,
|
|
862
852
|
required: Array.isArray(required) ? required.includes(name) : required,
|
|
863
853
|
schemaName: schema.allOf[0],
|
|
864
|
-
qualifierMessage: undefined,
|
|
865
854
|
schema: schema.allOf[0],
|
|
866
855
|
discriminator: false,
|
|
867
856
|
children: null,
|
|
@@ -913,7 +902,6 @@ const SchemaEdge = ({
|
|
|
913
902
|
name: name,
|
|
914
903
|
required: Array.isArray(required) ? required.includes(name) : required,
|
|
915
904
|
schemaName: mergedSchemaName,
|
|
916
|
-
qualifierMessage: (0, schema_1.getQualifierMessage)(mergedSchemas),
|
|
917
905
|
schema: mergedSchemas,
|
|
918
906
|
discriminator: false,
|
|
919
907
|
children: null,
|
|
@@ -924,7 +912,6 @@ const SchemaEdge = ({
|
|
|
924
912
|
name: name,
|
|
925
913
|
required: Array.isArray(required) ? required.includes(name) : required,
|
|
926
914
|
schemaName: schemaName,
|
|
927
|
-
qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
|
|
928
915
|
schema: schema,
|
|
929
916
|
discriminator: false,
|
|
930
917
|
children: null,
|
|
@@ -1092,7 +1079,6 @@ const SchemaNode = ({ schema, schemaType, schemaPath }) => {
|
|
|
1092
1079
|
name: schema.type,
|
|
1093
1080
|
required: Boolean(schema.required),
|
|
1094
1081
|
schemaName: schemaName,
|
|
1095
|
-
qualifierMessage: (0, schema_1.getQualifierMessage)(schema),
|
|
1096
1082
|
schema: schema,
|
|
1097
1083
|
discriminator: false,
|
|
1098
1084
|
children: null,
|
|
@@ -18,6 +18,7 @@ const Example_1 = require("@theme/Example");
|
|
|
18
18
|
const Markdown_1 = __importDefault(require("@theme/Markdown"));
|
|
19
19
|
const translationIds_1 = require("@theme/translationIds");
|
|
20
20
|
const clsx_1 = __importDefault(require("clsx"));
|
|
21
|
+
const schema_1 = require("../../markdown/schema");
|
|
21
22
|
const utils_1 = require("../../markdown/utils");
|
|
22
23
|
const transformEnumDescriptions = (enumDescriptions) => {
|
|
23
24
|
if (enumDescriptions) {
|
|
@@ -127,8 +128,12 @@ function SchemaItem(props) {
|
|
|
127
128
|
react_1.default.createElement(Markdown_1.default, null, description)
|
|
128
129
|
)
|
|
129
130
|
);
|
|
131
|
+
// Generate qualifierMessage from schema if not provided
|
|
132
|
+
const effectiveQualifierMessage =
|
|
133
|
+
qualifierMessage ??
|
|
134
|
+
(schema ? (0, schema_1.getQualifierMessage)(schema) : undefined);
|
|
130
135
|
const renderQualifierMessage = (0, utils_1.guard)(
|
|
131
|
-
|
|
136
|
+
effectiveQualifierMessage,
|
|
132
137
|
(message) =>
|
|
133
138
|
react_1.default.createElement(
|
|
134
139
|
react_1.default.Fragment,
|
|
@@ -60,6 +60,8 @@ export declare const OPENAPI_SCHEMA: {
|
|
|
60
60
|
NO_SCHEMA: string;
|
|
61
61
|
};
|
|
62
62
|
export declare const OPENAPI_SCHEMA_ITEM: {
|
|
63
|
+
CHARACTERS: string;
|
|
64
|
+
NON_EMPTY: string;
|
|
63
65
|
REQUIRED: string;
|
|
64
66
|
DEPRECATED: string;
|
|
65
67
|
NULLABLE: string;
|
|
@@ -71,6 +73,7 @@ export declare const OPENAPI_SCHEMA_ITEM: {
|
|
|
71
73
|
ENUM_VALUE: string;
|
|
72
74
|
ENUM_DESCRIPTION: string;
|
|
73
75
|
POSSIBLE_VALUES: string;
|
|
76
|
+
EXPRESSION: string;
|
|
74
77
|
ONE_OF: string;
|
|
75
78
|
ANY_OF: string;
|
|
76
79
|
};
|
|
@@ -84,6 +84,8 @@ exports.OPENAPI_SCHEMA = {
|
|
|
84
84
|
NO_SCHEMA: "theme.openapi.schema.noSchema",
|
|
85
85
|
};
|
|
86
86
|
exports.OPENAPI_SCHEMA_ITEM = {
|
|
87
|
+
CHARACTERS: "theme.openapi.schemaItem.characters",
|
|
88
|
+
NON_EMPTY: "theme.openapi.schemaItem.nonEmpty",
|
|
87
89
|
REQUIRED: "theme.openapi.schemaItem.required",
|
|
88
90
|
DEPRECATED: "theme.openapi.schemaItem.deprecated",
|
|
89
91
|
NULLABLE: "theme.openapi.schemaItem.nullable",
|
|
@@ -95,6 +97,7 @@ exports.OPENAPI_SCHEMA_ITEM = {
|
|
|
95
97
|
ENUM_VALUE: "theme.openapi.schemaItem.enumValue",
|
|
96
98
|
ENUM_DESCRIPTION: "theme.openapi.schemaItem.enumDescription",
|
|
97
99
|
POSSIBLE_VALUES: "theme.openapi.schemaItem.possibleValues",
|
|
100
|
+
EXPRESSION: "theme.openapi.schemaItem.expression",
|
|
98
101
|
ONE_OF: "theme.openapi.schemaItem.oneOf",
|
|
99
102
|
ANY_OF: "theme.openapi.schemaItem.anyOf",
|
|
100
103
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docusaurus-theme-openapi-docs",
|
|
3
3
|
"description": "OpenAPI theme for Docusaurus.",
|
|
4
|
-
"version": "0.0.0-
|
|
4
|
+
"version": "0.0.0-1156",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"openapi",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"@types/postman-collection": "^3.5.11",
|
|
39
39
|
"@types/react-modal": "^3.16.3",
|
|
40
40
|
"concurrently": "^9.2.0",
|
|
41
|
-
"docusaurus-plugin-openapi-docs": "0.0.0-
|
|
41
|
+
"docusaurus-plugin-openapi-docs": "0.0.0-1156",
|
|
42
42
|
"docusaurus-plugin-sass": "^0.2.6",
|
|
43
43
|
"eslint-plugin-prettier": "^5.5.1"
|
|
44
44
|
},
|
|
@@ -82,5 +82,5 @@
|
|
|
82
82
|
"engines": {
|
|
83
83
|
"node": ">=14"
|
|
84
84
|
},
|
|
85
|
-
"gitHead": "
|
|
85
|
+
"gitHead": "15f538e349ea6e12482cb5a53dea9c349fd9157e"
|
|
86
86
|
}
|
package/src/markdown/schema.ts
CHANGED
|
@@ -140,9 +140,7 @@ export function getQualifierMessage(schema?: SchemaObject): string | undefined {
|
|
|
140
140
|
if (schema.items) {
|
|
141
141
|
const itemsEnum = getEnumFromSchema(schema.items as SchemaObject);
|
|
142
142
|
if (itemsEnum) {
|
|
143
|
-
qualifierGroups.push(
|
|
144
|
-
`[${itemsEnum.map((e) => `\`${e}\``).join(", ")}]`
|
|
145
|
-
);
|
|
143
|
+
qualifierGroups.push(`[${itemsEnum.map((e) => `\`${e}\``).join(", ")}]`);
|
|
146
144
|
}
|
|
147
145
|
}
|
|
148
146
|
|
|
@@ -150,14 +148,22 @@ export function getQualifierMessage(schema?: SchemaObject): string | undefined {
|
|
|
150
148
|
let lengthQualifier = "";
|
|
151
149
|
let minLength;
|
|
152
150
|
let maxLength;
|
|
151
|
+
const charactersMessage = translate({
|
|
152
|
+
id: OPENAPI_SCHEMA_ITEM.CHARACTERS,
|
|
153
|
+
message: "characters",
|
|
154
|
+
});
|
|
155
|
+
const nonEmptyMessage = translate({
|
|
156
|
+
id: OPENAPI_SCHEMA_ITEM.NON_EMPTY,
|
|
157
|
+
message: "non-empty",
|
|
158
|
+
});
|
|
153
159
|
if (schema.minLength && schema.minLength > 1) {
|
|
154
|
-
minLength = `\`>= ${schema.minLength}
|
|
160
|
+
minLength = `\`>= ${schema.minLength} ${charactersMessage}\``;
|
|
155
161
|
}
|
|
156
162
|
if (schema.minLength && schema.minLength === 1) {
|
|
157
|
-
minLength =
|
|
163
|
+
minLength = `\`${nonEmptyMessage}\``;
|
|
158
164
|
}
|
|
159
165
|
if (schema.maxLength) {
|
|
160
|
-
maxLength = `\`<= ${schema.maxLength}
|
|
166
|
+
maxLength = `\`<= ${schema.maxLength} ${charactersMessage}\``;
|
|
161
167
|
}
|
|
162
168
|
|
|
163
169
|
if (minLength && !maxLength) {
|
|
@@ -211,9 +217,11 @@ export function getQualifierMessage(schema?: SchemaObject): string | undefined {
|
|
|
211
217
|
}
|
|
212
218
|
|
|
213
219
|
if (schema.pattern) {
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
220
|
+
const expressionMessage = translate({
|
|
221
|
+
id: OPENAPI_SCHEMA_ITEM.EXPRESSION,
|
|
222
|
+
message: "Value must match regular expression",
|
|
223
|
+
});
|
|
224
|
+
qualifierGroups.push(`${expressionMessage} \`${schema.pattern}\``);
|
|
217
225
|
}
|
|
218
226
|
|
|
219
227
|
// Check if discriminator mapping
|
|
@@ -9,7 +9,7 @@ import React from "react";
|
|
|
9
9
|
|
|
10
10
|
import SchemaItem from "@theme/SchemaItem";
|
|
11
11
|
|
|
12
|
-
import {
|
|
12
|
+
import { getSchemaName } from "../../markdown/schema";
|
|
13
13
|
|
|
14
14
|
interface ResponseHeadersProps {
|
|
15
15
|
description?: string;
|
|
@@ -35,7 +35,6 @@ export const ResponseHeaders: React.FC<{
|
|
|
35
35
|
name={name}
|
|
36
36
|
collapsible={false}
|
|
37
37
|
schemaName={getSchemaName(schema)}
|
|
38
|
-
qualifierMessage={getQualifierMessage(schema)}
|
|
39
38
|
schema={schema}
|
|
40
39
|
discriminator={false}
|
|
41
40
|
children={null}
|
|
@@ -21,16 +21,11 @@ import { OPENAPI_SCHEMA_ITEM } from "@theme/translationIds";
|
|
|
21
21
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
22
22
|
import { merge } from "allof-merge";
|
|
23
23
|
import clsx from "clsx";
|
|
24
|
-
import {
|
|
25
|
-
getQualifierMessage,
|
|
26
|
-
getSchemaName,
|
|
27
|
-
} from "docusaurus-plugin-openapi-docs/lib/markdown/schema";
|
|
28
|
-
import type {
|
|
29
|
-
SchemaObject,
|
|
30
|
-
SchemaType,
|
|
31
|
-
} from "docusaurus-plugin-openapi-docs/src/openapi/types";
|
|
32
24
|
import isEmpty from "lodash/isEmpty";
|
|
33
25
|
|
|
26
|
+
import { getQualifierMessage, getSchemaName } from "../../markdown/schema";
|
|
27
|
+
import type { SchemaObject } from "../../types.d";
|
|
28
|
+
|
|
34
29
|
// eslint-disable-next-line import/no-extraneous-dependencies
|
|
35
30
|
// const jsonSchemaMergeAllOf = require("json-schema-merge-allof");
|
|
36
31
|
|
|
@@ -304,7 +299,6 @@ const AnyOneOf: React.FC<SchemaProps> = ({
|
|
|
304
299
|
collapsible={false}
|
|
305
300
|
name={undefined}
|
|
306
301
|
schemaName={computedSchemaName}
|
|
307
|
-
qualifierMessage={getQualifierMessage(anyOneSchema)}
|
|
308
302
|
schema={anyOneSchema}
|
|
309
303
|
discriminator={false}
|
|
310
304
|
children={null}
|
|
@@ -321,7 +315,6 @@ const AnyOneOf: React.FC<SchemaProps> = ({
|
|
|
321
315
|
collapsible={false}
|
|
322
316
|
name={undefined}
|
|
323
317
|
schemaName={computedSchemaName}
|
|
324
|
-
qualifierMessage={getQualifierMessage(anyOneSchema)}
|
|
325
318
|
schema={anyOneSchema}
|
|
326
319
|
discriminator={false}
|
|
327
320
|
children={null}
|
|
@@ -406,7 +399,6 @@ const Properties: React.FC<SchemaProps> = ({
|
|
|
406
399
|
name=""
|
|
407
400
|
required={false}
|
|
408
401
|
schemaName="object"
|
|
409
|
-
qualifierMessage={undefined}
|
|
410
402
|
schema={{}}
|
|
411
403
|
/>
|
|
412
404
|
);
|
|
@@ -619,7 +611,6 @@ const AdditionalProperties: React.FC<SchemaProps> = ({
|
|
|
619
611
|
name="property name*"
|
|
620
612
|
required={false}
|
|
621
613
|
schemaName="any"
|
|
622
|
-
qualifierMessage={getQualifierMessage(schema)}
|
|
623
614
|
schema={schema}
|
|
624
615
|
collapsible={false}
|
|
625
616
|
discriminator={false}
|
|
@@ -665,7 +656,6 @@ const AdditionalProperties: React.FC<SchemaProps> = ({
|
|
|
665
656
|
name="property name*"
|
|
666
657
|
required={false}
|
|
667
658
|
schemaName={schemaName}
|
|
668
|
-
qualifierMessage={getQualifierMessage(schema)}
|
|
669
659
|
schema={additionalProperties}
|
|
670
660
|
collapsible={false}
|
|
671
661
|
discriminator={false}
|
|
@@ -775,7 +765,6 @@ const Items: React.FC<{
|
|
|
775
765
|
collapsible={false}
|
|
776
766
|
name="" // No name for array items
|
|
777
767
|
schemaName={getSchemaName(itemsSchema)}
|
|
778
|
-
qualifierMessage={getQualifierMessage(itemsSchema)}
|
|
779
768
|
schema={itemsSchema}
|
|
780
769
|
discriminator={false}
|
|
781
770
|
children={null}
|
|
@@ -935,7 +924,6 @@ const SchemaEdge: React.FC<SchemaEdgeProps> = ({
|
|
|
935
924
|
Array.isArray(required) ? required.includes(name) : required
|
|
936
925
|
}
|
|
937
926
|
schemaName={schema.allOf[0]}
|
|
938
|
-
qualifierMessage={undefined}
|
|
939
927
|
schema={schema.allOf[0]}
|
|
940
928
|
discriminator={false}
|
|
941
929
|
children={null}
|
|
@@ -1007,7 +995,6 @@ const SchemaEdge: React.FC<SchemaEdgeProps> = ({
|
|
|
1007
995
|
name={name}
|
|
1008
996
|
required={Array.isArray(required) ? required.includes(name) : required}
|
|
1009
997
|
schemaName={mergedSchemaName}
|
|
1010
|
-
qualifierMessage={getQualifierMessage(mergedSchemas)}
|
|
1011
998
|
schema={mergedSchemas}
|
|
1012
999
|
discriminator={false}
|
|
1013
1000
|
children={null}
|
|
@@ -1021,7 +1008,6 @@ const SchemaEdge: React.FC<SchemaEdgeProps> = ({
|
|
|
1021
1008
|
name={name}
|
|
1022
1009
|
required={Array.isArray(required) ? required.includes(name) : required}
|
|
1023
1010
|
schemaName={schemaName}
|
|
1024
|
-
qualifierMessage={getQualifierMessage(schema)}
|
|
1025
1011
|
schema={schema}
|
|
1026
1012
|
discriminator={false}
|
|
1027
1013
|
children={null}
|
|
@@ -1225,7 +1211,6 @@ const SchemaNode: React.FC<SchemaProps> = ({
|
|
|
1225
1211
|
name={schema.type}
|
|
1226
1212
|
required={Boolean(schema.required)}
|
|
1227
1213
|
schemaName={schemaName}
|
|
1228
|
-
qualifierMessage={getQualifierMessage(schema)}
|
|
1229
1214
|
schema={schema}
|
|
1230
1215
|
discriminator={false}
|
|
1231
1216
|
children={null}
|
|
@@ -1238,7 +1223,9 @@ const SchemaNode: React.FC<SchemaProps> = ({
|
|
|
1238
1223
|
|
|
1239
1224
|
export default SchemaNode;
|
|
1240
1225
|
|
|
1241
|
-
type PrimitiveSchemaType =
|
|
1226
|
+
type PrimitiveSchemaType =
|
|
1227
|
+
| Exclude<NonNullable<SchemaObject["type"]>, "object" | "array">
|
|
1228
|
+
| "null";
|
|
1242
1229
|
|
|
1243
1230
|
const PRIMITIVE_TYPES: Record<PrimitiveSchemaType, true> = {
|
|
1244
1231
|
string: true,
|
|
@@ -13,6 +13,7 @@ import Markdown from "@theme/Markdown";
|
|
|
13
13
|
import { OPENAPI_SCHEMA_ITEM } from "@theme/translationIds";
|
|
14
14
|
import clsx from "clsx";
|
|
15
15
|
|
|
16
|
+
import { getQualifierMessage } from "../../markdown/schema";
|
|
16
17
|
import { guard } from "../../markdown/utils";
|
|
17
18
|
|
|
18
19
|
export interface Props {
|
|
@@ -130,7 +131,11 @@ export default function SchemaItem(props: Props) {
|
|
|
130
131
|
</>
|
|
131
132
|
));
|
|
132
133
|
|
|
133
|
-
|
|
134
|
+
// Generate qualifierMessage from schema if not provided
|
|
135
|
+
const effectiveQualifierMessage =
|
|
136
|
+
qualifierMessage ?? (schema ? getQualifierMessage(schema) : undefined);
|
|
137
|
+
|
|
138
|
+
const renderQualifierMessage = guard(effectiveQualifierMessage, (message) => (
|
|
134
139
|
<>
|
|
135
140
|
<Markdown>{message}</Markdown>
|
|
136
141
|
</>
|
|
@@ -79,6 +79,8 @@ export const OPENAPI_SCHEMA = {
|
|
|
79
79
|
};
|
|
80
80
|
|
|
81
81
|
export const OPENAPI_SCHEMA_ITEM = {
|
|
82
|
+
CHARACTERS: "theme.openapi.schemaItem.characters",
|
|
83
|
+
NON_EMPTY: "theme.openapi.schemaItem.nonEmpty",
|
|
82
84
|
REQUIRED: "theme.openapi.schemaItem.required",
|
|
83
85
|
DEPRECATED: "theme.openapi.schemaItem.deprecated",
|
|
84
86
|
NULLABLE: "theme.openapi.schemaItem.nullable",
|
|
@@ -90,6 +92,7 @@ export const OPENAPI_SCHEMA_ITEM = {
|
|
|
90
92
|
ENUM_VALUE: "theme.openapi.schemaItem.enumValue",
|
|
91
93
|
ENUM_DESCRIPTION: "theme.openapi.schemaItem.enumDescription",
|
|
92
94
|
POSSIBLE_VALUES: "theme.openapi.schemaItem.possibleValues",
|
|
95
|
+
EXPRESSION: "theme.openapi.schemaItem.expression",
|
|
93
96
|
ONE_OF: "theme.openapi.schemaItem.oneOf",
|
|
94
97
|
ANY_OF: "theme.openapi.schemaItem.anyOf",
|
|
95
98
|
};
|