/** * @prettier */ import React from "react" import { createOnlyOAS31ComponentWrapper } from "../fn" const ModelsWrapper = createOnlyOAS31ComponentWrapper(({ getSystem }) => { const { getComponent, fn, getConfigs } = getSystem() const configs = getConfigs() if (ModelsWrapper.ModelsWithJSONSchemaContext) { return } const Models = getComponent("OAS31Models", 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") // we cache the HOC as recreating it with every re-render is quite expensive ModelsWrapper.ModelsWithJSONSchemaContext = withSchemaContext(Models, { config: { default$schema: "https://spec.openapis.org/oas/3.1/dialect/base", defaultExpandedLevels: configs.defaultModelsExpandDepth - 1, includeReadOnly: true, includeWriteOnly: true, }, 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: fn.jsonSchema202012.isExpandable, getProperties: fn.jsonSchema202012.getProperties, }, }) return }) ModelsWrapper.ModelsWithJSONSchemaContext = null export default ModelsWrapper