refactor(oas31): change License component to be smart (#8476)
Refs #8474
This commit is contained in:
37
src/core/plugins/oas31/selectors.js
Normal file
37
src/core/plugins/oas31/selectors.js
Normal file
@@ -0,0 +1,37 @@
|
||||
/**
|
||||
* @prettier
|
||||
*/
|
||||
import { createSelector } from "reselect"
|
||||
|
||||
import { safeBuildUrl } from "core/utils/url"
|
||||
|
||||
export const selectLicenseNameField = () => (system) => {
|
||||
return system.specSelectors.license().get("name", "License")
|
||||
}
|
||||
|
||||
export const selectLicenseUrlField = () => (system) => {
|
||||
return system.specSelectors.license().get("url")
|
||||
}
|
||||
|
||||
export const selectLicenseIdentifierField = () => (system) => {
|
||||
return system.specSelectors.license().get("identifier")
|
||||
}
|
||||
|
||||
export const makeSelectLicenseUrl = (system) =>
|
||||
createSelector(
|
||||
() => system.specSelectors.url(),
|
||||
() => system.oas3Selectors.selectedServer(),
|
||||
() => system.oas31Selectors.selectLicenseUrlField(),
|
||||
() => system.oas31Selectors.selectLicenseIdentifierField(),
|
||||
(specUrl, selectedServer, url, identifier) => {
|
||||
if (url) {
|
||||
return safeBuildUrl(url, specUrl, { selectedServer })
|
||||
}
|
||||
|
||||
if (identifier) {
|
||||
return `https://spdx.org/licenses/${identifier}.html`
|
||||
}
|
||||
|
||||
return undefined
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user