feat(oas31): prepare to render JSON Schema 2020-12 in Operations and Webhooks (#8670)
Refs #8513
This commit is contained in:
@@ -12,6 +12,8 @@ import LicenseWrapper from "./wrap-components/license"
|
||||
import ContactWrapper from "./wrap-components/contact"
|
||||
import InfoWrapper from "./wrap-components/info"
|
||||
import ModelsWrapper from "./wrap-components/models"
|
||||
import OperationsWrapper from "./wrap-components/operations"
|
||||
import WebhooksWrapper from "./wrap-components/webhooks"
|
||||
import VersionPragmaFilterWrapper from "./wrap-components/version-pragma-filter"
|
||||
import VersionStampWrapper from "./wrap-components/version-stamp"
|
||||
import {
|
||||
@@ -98,6 +100,8 @@ const OAS31Plugin = ({ getSystem }) => {
|
||||
VersionPragmaFilter: VersionPragmaFilterWrapper,
|
||||
VersionStamp: VersionStampWrapper,
|
||||
Models: ModelsWrapper,
|
||||
Operations: OperationsWrapper,
|
||||
Webhooks: WebhooksWrapper,
|
||||
JSONSchema202012KeywordDescription:
|
||||
JSONSchema202012KeywordDescriptionWrapper,
|
||||
JSONSchema202012KeywordDefault: JSONSchema202012KeywordDefaultWrapper,
|
||||
|
||||
@@ -20,7 +20,7 @@ const Description = ({ schema, getSystem }) => {
|
||||
}
|
||||
|
||||
Description.propTypes = {
|
||||
schema: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
|
||||
schema: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]).isRequired,
|
||||
getSystem: PropTypes.func.isRequired,
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ const Discriminator = ({ schema, getSystem }) => {
|
||||
}
|
||||
|
||||
Discriminator.propTypes = {
|
||||
schema: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
|
||||
schema: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]).isRequired,
|
||||
getSystem: PropTypes.func.isRequired,
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ const Example = ({ schema, getSystem }) => {
|
||||
}
|
||||
|
||||
Example.propTypes = {
|
||||
schema: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
|
||||
schema: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]).isRequired,
|
||||
getSystem: PropTypes.func.isRequired,
|
||||
}
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@ const ExternalDocs = ({ schema, getSystem }) => {
|
||||
}
|
||||
|
||||
ExternalDocs.propTypes = {
|
||||
schema: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
|
||||
schema: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]).isRequired,
|
||||
getSystem: PropTypes.func.isRequired,
|
||||
}
|
||||
|
||||
|
||||
@@ -124,7 +124,7 @@ const Xml = ({ schema, getSystem }) => {
|
||||
}
|
||||
|
||||
Xml.propTypes = {
|
||||
schema: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]),
|
||||
schema: PropTypes.oneOfType([PropTypes.object, PropTypes.bool]).isRequired,
|
||||
getSystem: PropTypes.func.isRequired,
|
||||
}
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@ const ModelsWrapper = createOnlyOAS31ComponentWrapper(({ getSystem }) => {
|
||||
const { getComponent, fn, getConfigs } = system
|
||||
const configs = getConfigs()
|
||||
|
||||
if (ModelsWrapper.ModelsWithJSONContext) {
|
||||
return <ModelsWrapper.ModelsWithJSONContext />
|
||||
if (ModelsWrapper.ModelsWithJSONSchemaContext) {
|
||||
return <ModelsWrapper.ModelsWithJSONSchemaContext />
|
||||
}
|
||||
|
||||
const Models = getComponent("OAS31Models", true)
|
||||
@@ -78,7 +78,7 @@ const ModelsWrapper = createOnlyOAS31ComponentWrapper(({ getSystem }) => {
|
||||
const ChevronRightIcon = getComponent("JSONSchema202012ChevronRightIcon")
|
||||
const withSchemaContext = getComponent("withJSONSchema202012Context")
|
||||
|
||||
ModelsWrapper.ModelsWithJSONContext = withSchemaContext(Models, {
|
||||
ModelsWrapper.ModelsWithJSONSchemaContext = withSchemaContext(Models, {
|
||||
config: {
|
||||
default$schema: "https://spec.openapis.org/oas/3.1/dialect/base",
|
||||
defaultExpandedLevels: configs.defaultModelsExpandDepth - 1,
|
||||
@@ -133,9 +133,9 @@ const ModelsWrapper = createOnlyOAS31ComponentWrapper(({ getSystem }) => {
|
||||
},
|
||||
})
|
||||
|
||||
return <ModelsWrapper.ModelsWithJSONContext />
|
||||
return <ModelsWrapper.ModelsWithJSONSchemaContext />
|
||||
})
|
||||
|
||||
ModelsWrapper.ModelsWithJSONContext = null
|
||||
ModelsWrapper.ModelsWithJSONSchemaContext = null
|
||||
|
||||
export default ModelsWrapper
|
||||
|
||||
147
src/core/plugins/oas31/wrap-components/operations.jsx
Normal file
147
src/core/plugins/oas31/wrap-components/operations.jsx
Normal file
@@ -0,0 +1,147 @@
|
||||
/**
|
||||
* @prettier
|
||||
*/
|
||||
import React from "react"
|
||||
|
||||
import { createOnlyOAS31ComponentWrapper } from "../fn"
|
||||
import { makeIsExpandable } from "../json-schema-2020-12-extensions/fn"
|
||||
|
||||
const OperationsWrapper = createOnlyOAS31ComponentWrapper(({ getSystem }) => {
|
||||
const system = getSystem()
|
||||
const { getComponent, fn, getConfigs } = system
|
||||
const configs = getConfigs()
|
||||
|
||||
if (OperationsWrapper.OperationsWithJSONSchemaContext) {
|
||||
return <OperationsWrapper.OperationsWithJSONSchemaContext />
|
||||
}
|
||||
|
||||
const Operations = getComponent("operations", true)
|
||||
const JSONSchema = getComponent("JSONSchema202012")
|
||||
const Keyword$schema = getComponent("JSONSchema202012Keyword$schema")
|
||||
const Keyword$vocabulary = getComponent("JSONSchema202012Keyword$vocabulary")
|
||||
const Keyword$id = getComponent("JSONSchema202012Keyword$id")
|
||||
const Keyword$anchor = getComponent("JSONSchema202012Keyword$anchor")
|
||||
const Keyword$dynamicAnchor = getComponent(
|
||||
"JSONSchema202012Keyword$dynamicAnchor"
|
||||
)
|
||||
const Keyword$ref = getComponent("JSONSchema202012Keyword$ref")
|
||||
const Keyword$dynamicRef = getComponent("JSONSchema202012Keyword$dynamicRef")
|
||||
const Keyword$defs = getComponent("JSONSchema202012Keyword$defs")
|
||||
const Keyword$comment = getComponent("JSONSchema202012Keyword$comment")
|
||||
const KeywordAllOf = getComponent("JSONSchema202012KeywordAllOf")
|
||||
const KeywordAnyOf = getComponent("JSONSchema202012KeywordAnyOf")
|
||||
const KeywordOneOf = getComponent("JSONSchema202012KeywordOneOf")
|
||||
const KeywordNot = getComponent("JSONSchema202012KeywordNot")
|
||||
const KeywordIf = getComponent("JSONSchema202012KeywordIf")
|
||||
const KeywordThen = getComponent("JSONSchema202012KeywordThen")
|
||||
const KeywordElse = getComponent("JSONSchema202012KeywordElse")
|
||||
const KeywordDependentSchemas = getComponent(
|
||||
"JSONSchema202012KeywordDependentSchemas"
|
||||
)
|
||||
const KeywordPrefixItems = getComponent("JSONSchema202012KeywordPrefixItems")
|
||||
const KeywordItems = getComponent("JSONSchema202012KeywordItems")
|
||||
const KeywordContains = getComponent("JSONSchema202012KeywordContains")
|
||||
const KeywordProperties = getComponent("JSONSchema202012KeywordProperties")
|
||||
const KeywordPatternProperties = getComponent(
|
||||
"JSONSchema202012KeywordPatternProperties"
|
||||
)
|
||||
const KeywordAdditionalProperties = getComponent(
|
||||
"JSONSchema202012KeywordAdditionalProperties"
|
||||
)
|
||||
const KeywordPropertyNames = getComponent(
|
||||
"JSONSchema202012KeywordPropertyNames"
|
||||
)
|
||||
const KeywordUnevaluatedItems = getComponent(
|
||||
"JSONSchema202012KeywordUnevaluatedItems"
|
||||
)
|
||||
const KeywordUnevaluatedProperties = getComponent(
|
||||
"JSONSchema202012KeywordUnevaluatedProperties"
|
||||
)
|
||||
const KeywordType = getComponent("JSONSchema202012KeywordType")
|
||||
const KeywordEnum = getComponent("JSONSchema202012KeywordEnum")
|
||||
const KeywordConst = getComponent("JSONSchema202012KeywordConst")
|
||||
const KeywordConstraint = getComponent("JSONSchema202012KeywordConstraint")
|
||||
const KeywordDependentRequired = getComponent(
|
||||
"JSONSchema202012KeywordDependentRequired"
|
||||
)
|
||||
const KeywordContentSchema = getComponent(
|
||||
"JSONSchema202012KeywordContentSchema"
|
||||
)
|
||||
const KeywordTitle = getComponent("JSONSchema202012KeywordTitle")
|
||||
const KeywordDescription = getComponent("JSONSchema202012KeywordDescription")
|
||||
const KeywordDefault = getComponent("JSONSchema202012KeywordDefault")
|
||||
const KeywordDeprecated = getComponent("JSONSchema202012KeywordDeprecated")
|
||||
const KeywordReadOnly = getComponent("JSONSchema202012KeywordReadOnly")
|
||||
const KeywordWriteOnly = getComponent("JSONSchema202012KeywordWriteOnly")
|
||||
const Accordion = getComponent("JSONSchema202012Accordion")
|
||||
const ExpandDeepButton = getComponent("JSONSchema202012ExpandDeepButton")
|
||||
const ChevronRightIcon = getComponent("JSONSchema202012ChevronRightIcon")
|
||||
const withSchemaContext = getComponent("withJSONSchema202012Context")
|
||||
|
||||
OperationsWrapper.OperationsWithJSONSchemaContext = withSchemaContext(
|
||||
Operations,
|
||||
{
|
||||
config: {
|
||||
default$schema: "https://spec.openapis.org/oas/3.1/dialect/base",
|
||||
defaultExpandedLevels: configs.defaultModelExpandDepth - 1,
|
||||
},
|
||||
components: {
|
||||
JSONSchema,
|
||||
Keyword$schema,
|
||||
Keyword$vocabulary,
|
||||
Keyword$id,
|
||||
Keyword$anchor,
|
||||
Keyword$dynamicAnchor,
|
||||
Keyword$ref,
|
||||
Keyword$dynamicRef,
|
||||
Keyword$defs,
|
||||
Keyword$comment,
|
||||
KeywordAllOf,
|
||||
KeywordAnyOf,
|
||||
KeywordOneOf,
|
||||
KeywordNot,
|
||||
KeywordIf,
|
||||
KeywordThen,
|
||||
KeywordElse,
|
||||
KeywordDependentSchemas,
|
||||
KeywordPrefixItems,
|
||||
KeywordItems,
|
||||
KeywordContains,
|
||||
KeywordProperties,
|
||||
KeywordPatternProperties,
|
||||
KeywordAdditionalProperties,
|
||||
KeywordPropertyNames,
|
||||
KeywordUnevaluatedItems,
|
||||
KeywordUnevaluatedProperties,
|
||||
KeywordType,
|
||||
KeywordEnum,
|
||||
KeywordConst,
|
||||
KeywordConstraint,
|
||||
KeywordDependentRequired,
|
||||
KeywordContentSchema,
|
||||
KeywordTitle,
|
||||
KeywordDescription,
|
||||
KeywordDefault,
|
||||
KeywordDeprecated,
|
||||
KeywordReadOnly,
|
||||
KeywordWriteOnly,
|
||||
Accordion,
|
||||
ExpandDeepButton,
|
||||
ChevronRightIcon,
|
||||
},
|
||||
fn: {
|
||||
upperFirst: fn.upperFirst,
|
||||
isExpandable: makeIsExpandable(
|
||||
fn.jsonSchema202012.isExpandable,
|
||||
system
|
||||
),
|
||||
},
|
||||
}
|
||||
)
|
||||
|
||||
return <OperationsWrapper.OperationsWithJSONSchemaContext />
|
||||
})
|
||||
|
||||
OperationsWrapper.OperationsWithJSONSchemaContext = null
|
||||
|
||||
export default OperationsWrapper
|
||||
141
src/core/plugins/oas31/wrap-components/webhooks.jsx
Normal file
141
src/core/plugins/oas31/wrap-components/webhooks.jsx
Normal file
@@ -0,0 +1,141 @@
|
||||
/**
|
||||
* @prettier
|
||||
*/
|
||||
import React from "react"
|
||||
|
||||
import { createOnlyOAS31ComponentWrapper } from "../fn"
|
||||
import { makeIsExpandable } from "../json-schema-2020-12-extensions/fn"
|
||||
|
||||
const WebhooksWrapper = createOnlyOAS31ComponentWrapper(({ getSystem }) => {
|
||||
const system = getSystem()
|
||||
const { getComponent, fn, getConfigs } = system
|
||||
const configs = getConfigs()
|
||||
|
||||
if (WebhooksWrapper.WebhooksWithJSONSchemaContext) {
|
||||
return <WebhooksWrapper.WebhooksWithJSONSchemaContext />
|
||||
}
|
||||
|
||||
const Webhooks = getComponent("Webhooks", true)
|
||||
const JSONSchema = getComponent("JSONSchema202012")
|
||||
const Keyword$schema = getComponent("JSONSchema202012Keyword$schema")
|
||||
const Keyword$vocabulary = getComponent("JSONSchema202012Keyword$vocabulary")
|
||||
const Keyword$id = getComponent("JSONSchema202012Keyword$id")
|
||||
const Keyword$anchor = getComponent("JSONSchema202012Keyword$anchor")
|
||||
const Keyword$dynamicAnchor = getComponent(
|
||||
"JSONSchema202012Keyword$dynamicAnchor"
|
||||
)
|
||||
const Keyword$ref = getComponent("JSONSchema202012Keyword$ref")
|
||||
const Keyword$dynamicRef = getComponent("JSONSchema202012Keyword$dynamicRef")
|
||||
const Keyword$defs = getComponent("JSONSchema202012Keyword$defs")
|
||||
const Keyword$comment = getComponent("JSONSchema202012Keyword$comment")
|
||||
const KeywordAllOf = getComponent("JSONSchema202012KeywordAllOf")
|
||||
const KeywordAnyOf = getComponent("JSONSchema202012KeywordAnyOf")
|
||||
const KeywordOneOf = getComponent("JSONSchema202012KeywordOneOf")
|
||||
const KeywordNot = getComponent("JSONSchema202012KeywordNot")
|
||||
const KeywordIf = getComponent("JSONSchema202012KeywordIf")
|
||||
const KeywordThen = getComponent("JSONSchema202012KeywordThen")
|
||||
const KeywordElse = getComponent("JSONSchema202012KeywordElse")
|
||||
const KeywordDependentSchemas = getComponent(
|
||||
"JSONSchema202012KeywordDependentSchemas"
|
||||
)
|
||||
const KeywordPrefixItems = getComponent("JSONSchema202012KeywordPrefixItems")
|
||||
const KeywordItems = getComponent("JSONSchema202012KeywordItems")
|
||||
const KeywordContains = getComponent("JSONSchema202012KeywordContains")
|
||||
const KeywordProperties = getComponent("JSONSchema202012KeywordProperties")
|
||||
const KeywordPatternProperties = getComponent(
|
||||
"JSONSchema202012KeywordPatternProperties"
|
||||
)
|
||||
const KeywordAdditionalProperties = getComponent(
|
||||
"JSONSchema202012KeywordAdditionalProperties"
|
||||
)
|
||||
const KeywordPropertyNames = getComponent(
|
||||
"JSONSchema202012KeywordPropertyNames"
|
||||
)
|
||||
const KeywordUnevaluatedItems = getComponent(
|
||||
"JSONSchema202012KeywordUnevaluatedItems"
|
||||
)
|
||||
const KeywordUnevaluatedProperties = getComponent(
|
||||
"JSONSchema202012KeywordUnevaluatedProperties"
|
||||
)
|
||||
const KeywordType = getComponent("JSONSchema202012KeywordType")
|
||||
const KeywordEnum = getComponent("JSONSchema202012KeywordEnum")
|
||||
const KeywordConst = getComponent("JSONSchema202012KeywordConst")
|
||||
const KeywordConstraint = getComponent("JSONSchema202012KeywordConstraint")
|
||||
const KeywordDependentRequired = getComponent(
|
||||
"JSONSchema202012KeywordDependentRequired"
|
||||
)
|
||||
const KeywordContentSchema = getComponent(
|
||||
"JSONSchema202012KeywordContentSchema"
|
||||
)
|
||||
const KeywordTitle = getComponent("JSONSchema202012KeywordTitle")
|
||||
const KeywordDescription = getComponent("JSONSchema202012KeywordDescription")
|
||||
const KeywordDefault = getComponent("JSONSchema202012KeywordDefault")
|
||||
const KeywordDeprecated = getComponent("JSONSchema202012KeywordDeprecated")
|
||||
const KeywordReadOnly = getComponent("JSONSchema202012KeywordReadOnly")
|
||||
const KeywordWriteOnly = getComponent("JSONSchema202012KeywordWriteOnly")
|
||||
const Accordion = getComponent("JSONSchema202012Accordion")
|
||||
const ExpandDeepButton = getComponent("JSONSchema202012ExpandDeepButton")
|
||||
const ChevronRightIcon = getComponent("JSONSchema202012ChevronRightIcon")
|
||||
const withSchemaContext = getComponent("withJSONSchema202012Context")
|
||||
|
||||
WebhooksWrapper.WebhooksWithJSONSchemaContext = withSchemaContext(Webhooks, {
|
||||
config: {
|
||||
default$schema: "https://spec.openapis.org/oas/3.1/dialect/base",
|
||||
defaultExpandedLevels: configs.defaultModelExpandDepth - 1,
|
||||
},
|
||||
components: {
|
||||
JSONSchema,
|
||||
Keyword$schema,
|
||||
Keyword$vocabulary,
|
||||
Keyword$id,
|
||||
Keyword$anchor,
|
||||
Keyword$dynamicAnchor,
|
||||
Keyword$ref,
|
||||
Keyword$dynamicRef,
|
||||
Keyword$defs,
|
||||
Keyword$comment,
|
||||
KeywordAllOf,
|
||||
KeywordAnyOf,
|
||||
KeywordOneOf,
|
||||
KeywordNot,
|
||||
KeywordIf,
|
||||
KeywordThen,
|
||||
KeywordElse,
|
||||
KeywordDependentSchemas,
|
||||
KeywordPrefixItems,
|
||||
KeywordItems,
|
||||
KeywordContains,
|
||||
KeywordProperties,
|
||||
KeywordPatternProperties,
|
||||
KeywordAdditionalProperties,
|
||||
KeywordPropertyNames,
|
||||
KeywordUnevaluatedItems,
|
||||
KeywordUnevaluatedProperties,
|
||||
KeywordType,
|
||||
KeywordEnum,
|
||||
KeywordConst,
|
||||
KeywordConstraint,
|
||||
KeywordDependentRequired,
|
||||
KeywordContentSchema,
|
||||
KeywordTitle,
|
||||
KeywordDescription,
|
||||
KeywordDefault,
|
||||
KeywordDeprecated,
|
||||
KeywordReadOnly,
|
||||
KeywordWriteOnly,
|
||||
Accordion,
|
||||
ExpandDeepButton,
|
||||
ChevronRightIcon,
|
||||
},
|
||||
fn: {
|
||||
upperFirst: fn.upperFirst,
|
||||
isExpandable: makeIsExpandable(fn.jsonSchema202012.isExpandable, system),
|
||||
},
|
||||
})
|
||||
|
||||
return <WebhooksWrapper.WebhooksWithJSONSchemaContext />
|
||||
})
|
||||
|
||||
WebhooksWrapper.WebhooksWithJSONSchemaContext = null
|
||||
|
||||
export default WebhooksWrapper
|
||||
Reference in New Issue
Block a user