diff --git a/src/core/index.js b/src/core/index.js index 9d910f67243..c08685de771 100644 --- a/src/core/index.js +++ b/src/core/index.js @@ -11,6 +11,7 @@ import DeepLinkingPlugin from "./plugins/deep-linking" import ErrPlugin from "./plugins/err" import FilterPlugin from "./plugins/filter" import IconsPlugin from "./plugins/icons" +import JSONSchema5Plugin from "./plugins/json-schema-5" import JSONSchema202012Plugin from "./plugins/json-schema-2020-12" import JSONSchema202012SamplesPlugin from "./plugins/json-schema-2020-12-samples" import LayoutPlugin from "./plugins/layout" @@ -257,6 +258,7 @@ SwaggerUI.plugins = { Err: ErrPlugin, Filter: FilterPlugin, Icons: IconsPlugin, + JSONSchema5: JSONSchema5Plugin, JSONSchema5Samples: JSONSchema5SamplesPlugin, JSONSchema202012: JSONSchema202012Plugin, JSONSchema202012Samples: JSONSchema202012SamplesPlugin, diff --git a/src/core/components/array-model.jsx b/src/core/plugins/json-schema-5/components/array-model.jsx similarity index 100% rename from src/core/components/array-model.jsx rename to src/core/plugins/json-schema-5/components/array-model.jsx diff --git a/src/core/components/enum-model.jsx b/src/core/plugins/json-schema-5/components/enum-model.jsx similarity index 100% rename from src/core/components/enum-model.jsx rename to src/core/plugins/json-schema-5/components/enum-model.jsx diff --git a/src/core/components/json-schema-components.jsx b/src/core/plugins/json-schema-5/components/json-schema-components.jsx similarity index 100% rename from src/core/components/json-schema-components.jsx rename to src/core/plugins/json-schema-5/components/json-schema-components.jsx diff --git a/src/core/components/model-collapse.jsx b/src/core/plugins/json-schema-5/components/model-collapse.jsx similarity index 100% rename from src/core/components/model-collapse.jsx rename to src/core/plugins/json-schema-5/components/model-collapse.jsx diff --git a/src/core/components/model-example.jsx b/src/core/plugins/json-schema-5/components/model-example.jsx similarity index 100% rename from src/core/components/model-example.jsx rename to src/core/plugins/json-schema-5/components/model-example.jsx diff --git a/src/core/components/model-wrapper.jsx b/src/core/plugins/json-schema-5/components/model-wrapper.jsx similarity index 100% rename from src/core/components/model-wrapper.jsx rename to src/core/plugins/json-schema-5/components/model-wrapper.jsx diff --git a/src/core/components/model.jsx b/src/core/plugins/json-schema-5/components/model.jsx similarity index 100% rename from src/core/components/model.jsx rename to src/core/plugins/json-schema-5/components/model.jsx diff --git a/src/core/components/models.jsx b/src/core/plugins/json-schema-5/components/models.jsx similarity index 100% rename from src/core/components/models.jsx rename to src/core/plugins/json-schema-5/components/models.jsx diff --git a/src/core/components/object-model.jsx b/src/core/plugins/json-schema-5/components/object-model.jsx similarity index 100% rename from src/core/components/object-model.jsx rename to src/core/plugins/json-schema-5/components/object-model.jsx diff --git a/src/core/components/primitive-model.jsx b/src/core/plugins/json-schema-5/components/primitive-model.jsx similarity index 100% rename from src/core/components/primitive-model.jsx rename to src/core/plugins/json-schema-5/components/primitive-model.jsx diff --git a/src/core/components/schemes.jsx b/src/core/plugins/json-schema-5/components/schemes.jsx similarity index 100% rename from src/core/components/schemes.jsx rename to src/core/plugins/json-schema-5/components/schemes.jsx diff --git a/src/core/containers/schemes.jsx b/src/core/plugins/json-schema-5/containers/schemes.jsx similarity index 100% rename from src/core/containers/schemes.jsx rename to src/core/plugins/json-schema-5/containers/schemes.jsx diff --git a/src/core/plugins/json-schema-5/index.js b/src/core/plugins/json-schema-5/index.js new file mode 100644 index 00000000000..799c9d5b004 --- /dev/null +++ b/src/core/plugins/json-schema-5/index.js @@ -0,0 +1,34 @@ +/** + * @prettier + */ +import ModelCollapse from "./components/model-collapse" +import ModelExample from "./components/model-example" +import ModelWrapper from "./components/model-wrapper" +import Model from "./components/model" +import Models from "./components/models" +import EnumModel from "./components/enum-model" +import ObjectModel from "./components/object-model" +import ArrayModel from "./components/array-model" +import PrimitiveModel from "./components/primitive-model" +import Schemes from "./components/schemes" +import SchemesContainer from "./containers/schemes" +import * as JSONSchemaComponents from "./components/json-schema-components" + +const JSONSchema5Plugin = () => ({ + components: { + modelExample: ModelExample, + ModelWrapper, + ModelCollapse, + Model, + Models, + EnumModel, + ObjectModel, + ArrayModel, + PrimitiveModel, + schemes: Schemes, + SchemesContainer, + ...JSONSchemaComponents, + }, +}) + +export default JSONSchema5Plugin diff --git a/src/core/plugins/oas3/wrap-components/model.jsx b/src/core/plugins/oas3/wrap-components/model.jsx index 2476a529e56..d22de8175d8 100644 --- a/src/core/plugins/oas3/wrap-components/model.jsx +++ b/src/core/plugins/oas3/wrap-components/model.jsx @@ -1,7 +1,6 @@ import React, { Component } from "react" import PropTypes from "prop-types" import { OAS3ComponentWrapFactory } from "../helpers" -import Model from "core/components/model" class ModelComponent extends Component { static propTypes = { @@ -13,10 +12,11 @@ class ModelComponent extends Component { expandDepth: PropTypes.number, includeReadOnly: PropTypes.bool, includeWriteOnly: PropTypes.bool, + Ori: PropTypes.func.isRequired, } render(){ - let { getConfigs, schema } = this.props + let { getConfigs, schema, Ori: Model } = this.props let classes = ["model-box"] let isDeprecated = schema.get("deprecated") === true let message = null diff --git a/src/core/presets/base/index.js b/src/core/presets/base/index.js index 7ee4891a7bb..b220c5949fd 100644 --- a/src/core/presets/base/index.js +++ b/src/core/presets/base/index.js @@ -11,6 +11,7 @@ import LayoutPlugin from "core/plugins/layout" import LogsPlugin from "core/plugins/logs" import OnCompletePlugin from "core/plugins/on-complete" import RequestSnippetsPlugin from "core/plugins/request-snippets" +import JSONSchema5Plugin from "core/plugins/json-schema-5" import JSONSchema5SamplesPlugin from "core/plugins/json-schema-5-samples" import SpecPlugin from "core/plugins/spec" import SwaggerClientPlugin from "core/plugins/swagger-client" @@ -23,7 +24,6 @@ import SafeRenderPlugin from "core/plugins/safe-render" // ad-hoc plugins import CoreComponentsPlugin from "core/presets/base/plugins/core-components" import FormComponentsPlugin from "core/presets/base/plugins/form-components" -import JSONSchemaComponentsPlugin from "core/presets/base/plugins/json-schema-components" const BasePreset = () => [ ConfigsPlugin, @@ -35,11 +35,11 @@ const BasePreset = () => [ ErrPlugin, IconsPlugin, LayoutPlugin, + JSONSchema5Plugin, JSONSchema5SamplesPlugin, CoreComponentsPlugin, FormComponentsPlugin, SwaggerClientPlugin, - JSONSchemaComponentsPlugin, AuthPlugin, DownloadUrlPlugin, DeepLinkingPlugin, diff --git a/src/core/presets/base/plugins/core-components/index.js b/src/core/presets/base/plugins/core-components/index.js index f4836bc25ca..048bc576e46 100644 --- a/src/core/presets/base/plugins/core-components/index.js +++ b/src/core/presets/base/plugins/core-components/index.js @@ -51,17 +51,6 @@ import Footer from "core/components/footer" import FilterContainer from "core/containers/filter" import ParamBody from "core/components/param-body" import Curl from "core/components/curl" -import Schemes from "core/components/schemes" -import SchemesContainer from "core/containers/schemes" -import ModelCollapse from "core/components/model-collapse" -import ModelExample from "core/components/model-example" -import ModelWrapper from "core/components/model-wrapper" -import Model from "core/components/model" -import Models from "core/components/models" -import EnumModel from "core/components/enum-model" -import ObjectModel from "core/components/object-model" -import ArrayModel from "core/components/array-model" -import PrimitiveModel from "core/components/primitive-model" import Property from "core/components/property" import TryItOutButton from "core/components/try-it-out-button" import VersionPragmaFilter from "core/components/version-pragma-filter" @@ -117,17 +106,6 @@ const CoreComponentsPlugin = () => ({ FilterContainer, ParamBody: ParamBody, curl: Curl, - schemes: Schemes, - SchemesContainer, - modelExample: ModelExample, - ModelWrapper, - ModelCollapse, - Model, - Models, - EnumModel, - ObjectModel, - ArrayModel, - PrimitiveModel, Property, TryItOutButton, Markdown, diff --git a/src/core/presets/base/plugins/json-schema-components/index.js b/src/core/presets/base/plugins/json-schema-components/index.js deleted file mode 100644 index aa1c40a071f..00000000000 --- a/src/core/presets/base/plugins/json-schema-components/index.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * @prettier - */ -import * as JSONSchemaComponents from "core/components/json-schema-components" - -const JSONSchemaComponentsPlugin = () => ({ - components: { ...JSONSchemaComponents }, -}) - -export default JSONSchemaComponentsPlugin diff --git a/test/unit/core/helpers/get-model-name.js b/test/unit/core/helpers/get-model-name.js index 2dbdd99c735..63407055702 100644 --- a/test/unit/core/helpers/get-model-name.js +++ b/test/unit/core/helpers/get-model-name.js @@ -2,7 +2,7 @@ * @prettier */ -import Model from "../../../../src/core/components/model" +import Model from "../../../../src/core/plugins/json-schema-5/components/model" describe("getModelName", () => { const model = new Model() diff --git a/test/unit/components/json-schema-form.jsx b/test/unit/core/plugins/json-schema-5/components/json-schema-form.jsx similarity index 98% rename from test/unit/components/json-schema-form.jsx rename to test/unit/core/plugins/json-schema-5/components/json-schema-form.jsx index 14fc629f8d1..488589dc724 100644 --- a/test/unit/components/json-schema-form.jsx +++ b/test/unit/core/plugins/json-schema-5/components/json-schema-form.jsx @@ -2,7 +2,7 @@ import React from "react" import Immutable, { List } from "immutable" import { Select, Input, TextArea } from "core/components/layout-utils" import { mount, render } from "enzyme" -import * as JsonSchemaComponents from "core/components/json-schema-components" +import * as JsonSchemaComponents from "core/plugins/json-schema-5/components/json-schema-components" const components = {...JsonSchemaComponents, Select, Input, TextArea} diff --git a/test/unit/components/model-example.jsx b/test/unit/core/plugins/json-schema-5/components/model-example.jsx similarity index 95% rename from test/unit/components/model-example.jsx rename to test/unit/core/plugins/json-schema-5/components/model-example.jsx index 3aa78544aee..737be87af9b 100644 --- a/test/unit/components/model-example.jsx +++ b/test/unit/core/plugins/json-schema-5/components/model-example.jsx @@ -1,7 +1,7 @@ import React from "react" import { shallow } from "enzyme" -import ModelExample from "core/components/model-example" -import ModelComponent from "core/components/model-wrapper" +import ModelExample from "core/plugins/json-schema-5/components/model-example" +import ModelComponent from "core/plugins/json-schema-5/components/model-wrapper" describe("", function(){ let components, props diff --git a/test/unit/components/models.jsx b/test/unit/core/plugins/json-schema-5/components/models.jsx similarity index 84% rename from test/unit/components/models.jsx rename to test/unit/core/plugins/json-schema-5/components/models.jsx index b86157ae540..3203f486376 100644 --- a/test/unit/components/models.jsx +++ b/test/unit/core/plugins/json-schema-5/components/models.jsx @@ -1,9 +1,9 @@ import React from "react" import { shallow } from "enzyme" import { fromJS, Map } from "immutable" -import Models from "core/components/models" -import ModelCollapse from "core/components/model-collapse" -import ModelComponent from "core/components/model-wrapper" +import Models from "core/plugins/json-schema-5/components/models" +import ModelCollapse from "core/plugins/json-schema-5/components/model-collapse" +import ModelComponent from "core/plugins/json-schema-5/components/model-wrapper" describe("", function(){ const dummyComponent = () => null diff --git a/test/unit/components/object-model.jsx b/test/unit/core/plugins/json-schema-5/components/object-model.jsx similarity index 94% rename from test/unit/components/object-model.jsx rename to test/unit/core/plugins/json-schema-5/components/object-model.jsx index 478a49c0e5f..9f4c5f72382 100644 --- a/test/unit/components/object-model.jsx +++ b/test/unit/core/plugins/json-schema-5/components/object-model.jsx @@ -1,11 +1,11 @@ import React from "react" import { shallow } from "enzyme" import { List } from "immutable" -import ObjectModel from "core/components/object-model" +import ObjectModel from "core/plugins/json-schema-5/components/object-model" // import ModelExample from "core/components/model-example" import Immutable from "immutable" -import Model from "core/components/model" -import ModelCollapse from "core/components/model-collapse" +import Model from "core/plugins/json-schema-5/components/model" +import ModelCollapse from "core/plugins/json-schema-5/components/model-collapse" import Property from "core/components/property" // import { inferSchema } from "core/plugins/samples/fn" diff --git a/test/unit/components/primitive-model.jsx b/test/unit/core/plugins/json-schema-5/components/primitive-model.jsx similarity index 90% rename from test/unit/components/primitive-model.jsx rename to test/unit/core/plugins/json-schema-5/components/primitive-model.jsx index b021667732e..6fd3d529b2b 100644 --- a/test/unit/components/primitive-model.jsx +++ b/test/unit/core/plugins/json-schema-5/components/primitive-model.jsx @@ -1,8 +1,8 @@ import React from "react" import { shallow } from "enzyme" import { fromJS } from "immutable" -import PrimitiveModel from "core/components/primitive-model" -import ModelCollapse from "core/components/model-collapse" +import PrimitiveModel from "core/plugins/json-schema-5/components/primitive-model" +import ModelCollapse from "core/plugins/json-schema-5/components/model-collapse" describe("", function () { const dummyComponent = () => null diff --git a/test/unit/components/response.jsx b/test/unit/core/plugins/json-schema-5/components/response.jsx similarity index 96% rename from test/unit/components/response.jsx rename to test/unit/core/plugins/json-schema-5/components/response.jsx index 626b16ab97f..f5eed6a0edb 100644 --- a/test/unit/components/response.jsx +++ b/test/unit/core/plugins/json-schema-5/components/response.jsx @@ -6,7 +6,7 @@ import { shallow } from "enzyme" import { fromJS, List } from "immutable" import Response from "core/components/response" -import ModelExample from "core/components/model-example" +import ModelExample from "core/plugins/json-schema-5/components/model-example" import { inferSchema, memoizedSampleFromSchema, diff --git a/test/unit/components/schemes-wrapper.jsx b/test/unit/core/plugins/json-schema-5/components/schemes-wrapper.jsx similarity index 94% rename from test/unit/components/schemes-wrapper.jsx rename to test/unit/core/plugins/json-schema-5/components/schemes-wrapper.jsx index 01348343671..55352232286 100644 --- a/test/unit/components/schemes-wrapper.jsx +++ b/test/unit/core/plugins/json-schema-5/components/schemes-wrapper.jsx @@ -1,8 +1,8 @@ import React from "react" import { mount } from "enzyme" import { fromJS } from "immutable" -import SchemesContainer from "core/containers/schemes" -import Schemes from "core/components/schemes" +import SchemesContainer from "core/plugins/json-schema-5/containers/schemes" +import Schemes from "core/plugins/json-schema-5/components/schemes" import { Col } from "core/components/layout-utils" describe("", function(){ diff --git a/test/unit/components/schemes.jsx b/test/unit/core/plugins/json-schema-5/components/schemes.jsx similarity index 96% rename from test/unit/components/schemes.jsx rename to test/unit/core/plugins/json-schema-5/components/schemes.jsx index 57a2cf4fe47..9709419a765 100644 --- a/test/unit/components/schemes.jsx +++ b/test/unit/core/plugins/json-schema-5/components/schemes.jsx @@ -1,7 +1,7 @@ import React from "react" import { shallow } from "enzyme" import { fromJS } from "immutable" -import Schemes from "core/components/schemes" +import Schemes from "core/plugins/json-schema-5/components/schemes" describe("", function(){ it("calls props.specActions.setScheme() when no currentScheme is selected", function(){