117 lines
3.7 KiB
JavaScript
117 lines
3.7 KiB
JavaScript
/**
|
|
* @prettier
|
|
*/
|
|
import Webhooks from "./components/webhooks"
|
|
import License from "./components/license"
|
|
import Contact from "./components/contact"
|
|
import Info from "./components/info"
|
|
import LicenseWrapper from "./wrap-components/license"
|
|
import ContactWrapper from "./wrap-components/contact"
|
|
import InfoWrapper from "./wrap-components/info"
|
|
import {
|
|
license as selectLicense,
|
|
contact as selectContact,
|
|
webhooks as selectWebhooks,
|
|
selectLicenseNameField,
|
|
selectLicenseUrlField,
|
|
selectLicenseIdentifierField,
|
|
selectContactNameField,
|
|
selectContactEmailField,
|
|
selectContactUrlField,
|
|
selectContactUrl,
|
|
isOAS31 as selectIsOAS31,
|
|
selectLicenseUrl,
|
|
selectInfoTitleField,
|
|
selectInfoSummaryField,
|
|
selectInfoDescriptionField,
|
|
selectInfoTermsOfServiceField,
|
|
selectInfoTermsOfServiceUrl,
|
|
selectExternalDocsDescriptionField,
|
|
selectExternalDocsUrlField,
|
|
selectExternalDocsUrl,
|
|
selectWebhooksOperations,
|
|
} from "./spec-extensions/selectors"
|
|
import {
|
|
isOAS3 as isOAS3SelectorWrapper,
|
|
selectLicenseUrl as selectLicenseUrlWrapper,
|
|
} from "./spec-extensions/wrap-selectors"
|
|
import { hasUserEditedBody as hasUserEditedBodySelectorWrapper } from "./oas3-extensions/wrap-selectors"
|
|
import { selectLicenseUrl as selectOAS31LicenseUrl } from "./selectors"
|
|
import {
|
|
isOAS31 as isOAS31Fn,
|
|
createOnlyOAS31Selector as createOnlyOAS31SelectorFn,
|
|
createSystemSelector as createSystemSelectorFn,
|
|
} from "./fn"
|
|
|
|
const OAS31Plugin = ({ fn }) => {
|
|
const createSystemSelector = fn.createSystemSelector || createSystemSelectorFn
|
|
const createOnlyOAS31Selector = fn.createOnlyOAS31Selector || createOnlyOAS31SelectorFn // prettier-ignore
|
|
|
|
return {
|
|
fn: {
|
|
isOAs31: isOAS31Fn,
|
|
createSystemSelector: createSystemSelectorFn,
|
|
createOnlyOAS31Selector: createOnlyOAS31SelectorFn,
|
|
},
|
|
components: {
|
|
Webhooks,
|
|
OAS31Info: Info,
|
|
OAS31License: License,
|
|
OAS31Contact: Contact,
|
|
},
|
|
wrapComponents: {
|
|
InfoContainer: InfoWrapper,
|
|
License: LicenseWrapper,
|
|
Contact: ContactWrapper,
|
|
},
|
|
statePlugins: {
|
|
spec: {
|
|
selectors: {
|
|
isOAS31: createSystemSelector(selectIsOAS31),
|
|
|
|
license: selectLicense,
|
|
selectLicenseNameField,
|
|
selectLicenseUrlField,
|
|
selectLicenseIdentifierField: createOnlyOAS31Selector(selectLicenseIdentifierField), // prettier-ignore
|
|
selectLicenseUrl: createSystemSelector(selectLicenseUrl),
|
|
|
|
contact: selectContact,
|
|
selectContactNameField,
|
|
selectContactEmailField,
|
|
selectContactUrlField,
|
|
selectContactUrl: createSystemSelector(selectContactUrl),
|
|
|
|
selectInfoTitleField,
|
|
selectInfoSummaryField: createOnlyOAS31Selector(selectInfoSummaryField), // prettier-ignore
|
|
selectInfoDescriptionField,
|
|
selectInfoTermsOfServiceField,
|
|
selectInfoTermsOfServiceUrl: createSystemSelector(selectInfoTermsOfServiceUrl), // prettier-ignore
|
|
|
|
selectExternalDocsDescriptionField,
|
|
selectExternalDocsUrlField,
|
|
selectExternalDocsUrl: createSystemSelector(selectExternalDocsUrl),
|
|
|
|
webhooks: createOnlyOAS31Selector(selectWebhooks),
|
|
selectWebhooksOperations: createOnlyOAS31Selector(createSystemSelector(selectWebhooksOperations)), // prettier-ignore
|
|
},
|
|
wrapSelectors: {
|
|
isOAS3: isOAS3SelectorWrapper,
|
|
selectLicenseUrl: selectLicenseUrlWrapper,
|
|
},
|
|
},
|
|
oas3: {
|
|
wrapSelectors: {
|
|
hasUserEditedBody: hasUserEditedBodySelectorWrapper,
|
|
},
|
|
},
|
|
oas31: {
|
|
selectors: {
|
|
selectLicenseUrl: createOnlyOAS31Selector(createSystemSelector(selectOAS31LicenseUrl)), // prettier-ignore
|
|
},
|
|
},
|
|
},
|
|
}
|
|
}
|
|
|
|
export default OAS31Plugin
|