From 56c087cec5f61f631b0fee10ae7c11f9fab0079a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Gorej?= Date: Fri, 26 Jan 2024 13:14:52 +0100 Subject: [PATCH] fix(oas31): make selectors always return expected shapes (#9519) Refs #9517 --- .../plugins/oas31/spec-extensions/selectors.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/core/plugins/oas31/spec-extensions/selectors.js b/src/core/plugins/oas31/spec-extensions/selectors.js index fed71ddf..ceb79534 100644 --- a/src/core/plugins/oas31/spec-extensions/selectors.js +++ b/src/core/plugins/oas31/spec-extensions/selectors.js @@ -15,7 +15,8 @@ export const isOAS31 = createSelector( ) 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.specResolvedSubtree(["webhooks"]), ], - (webhooks, validOperationMethods) => { - if (!Map.isMap(webhooks)) return {} - - return webhooks + (webhooks, validOperationMethods) => + webhooks .reduce((allOperations, pathItem, pathItemName) => { if (!Map.isMap(pathItem)) return allOperations @@ -51,11 +50,11 @@ export const selectWebhooksOperations = createSelector( .groupBy((operationDTO) => operationDTO.path) .map((operations) => operations.toArray()) .toObject() - } ) 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) => { @@ -86,7 +85,8 @@ export const selectLicenseIdentifierField = () => (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) => {