refactor(oas31): introduce selector composition mechanism (#8484)

Refs #8474
This commit is contained in:
Vladimír Gorej
2023-03-20 08:34:11 +01:00
committed by GitHub
parent 47e12f1de3
commit d7099793a4
6 changed files with 196 additions and 175 deletions

View File

@@ -4,25 +4,21 @@
import { createSelector } from "reselect"
import { safeBuildUrl } from "core/utils/url"
import { onlyOAS31 } from "./helpers"
export const makeSelectLicenseUrl = (system) =>
onlyOAS31(
createSelector(
() => system.specSelectors.url(),
() => system.oas3Selectors.selectedServer(),
() => system.specSelectors.selectLicenseUrlField(),
() => system.specSelectors.selectLicenseIdentifierField(),
(specUrl, selectedServer, url, identifier) => {
if (url) {
return safeBuildUrl(url, specUrl, { selectedServer })
}
export const selectLicenseUrl = createSelector(
(state, system) => system.specSelectors.url(),
(state, system) => system.oas3Selectors.selectedServer(),
(state, system) => system.specSelectors.selectLicenseUrlField(),
(state, system) => system.specSelectors.selectLicenseIdentifierField(),
(specUrl, selectedServer, url, identifier) => {
if (url) {
return safeBuildUrl(url, specUrl, { selectedServer })
}
if (identifier) {
return `https://spdx.org/licenses/${identifier}.html`
}
if (identifier) {
return `https://spdx.org/licenses/${identifier}.html`
}
return undefined
}
)
)
return undefined
}
)