fix(oas31): make selectors always return expected shapes (#9519)

Refs #9517
This commit is contained in:
Vladimír Gorej
2024-01-26 13:14:52 +01:00
committed by GitHub
parent a65502067e
commit 56c087cec5

View File

@@ -15,7 +15,8 @@ export const isOAS31 = createSelector(
) )
export const webhooks = () => (system) => { export const webhooks = () => (system) => {
return system.specSelectors.specJson().get("webhooks", map) const webhooks = system.specSelectors.specJson().get("webhooks")
return Map.isMap(webhooks) ? webhooks : map
} }
/** /**
@@ -29,10 +30,8 @@ export const selectWebhooksOperations = createSelector(
(state, system) => system.specSelectors.validOperationMethods(), (state, system) => system.specSelectors.validOperationMethods(),
(state, system) => system.specSelectors.specResolvedSubtree(["webhooks"]), (state, system) => system.specSelectors.specResolvedSubtree(["webhooks"]),
], ],
(webhooks, validOperationMethods) => { (webhooks, validOperationMethods) =>
if (!Map.isMap(webhooks)) return {} webhooks
return webhooks
.reduce((allOperations, pathItem, pathItemName) => { .reduce((allOperations, pathItem, pathItemName) => {
if (!Map.isMap(pathItem)) return allOperations if (!Map.isMap(pathItem)) return allOperations
@@ -51,11 +50,11 @@ export const selectWebhooksOperations = createSelector(
.groupBy((operationDTO) => operationDTO.path) .groupBy((operationDTO) => operationDTO.path)
.map((operations) => operations.toArray()) .map((operations) => operations.toArray())
.toObject() .toObject()
}
) )
export const license = () => (system) => { export const license = () => (system) => {
return system.specSelectors.info().get("license", map) const license = system.specSelectors.info().get("license")
return Map.isMap(license) ? license : map
} }
export const selectLicenseNameField = () => (system) => { export const selectLicenseNameField = () => (system) => {
@@ -86,7 +85,8 @@ export const selectLicenseIdentifierField = () => (system) => {
} }
export const contact = () => (system) => { export const contact = () => (system) => {
return system.specSelectors.info().get("contact", map) const contact = system.specSelectors.info().get("contact")
return Map.isMap(contact) ? contact : map
} }
export const selectContactNameField = () => (system) => { export const selectContactNameField = () => (system) => {