From ca0b248df2503ba0f29a5a8c980dcb220503156d Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Fri, 22 Dec 2017 23:19:10 -0600 Subject: [PATCH 1/2] Prevent non-object values from being dispatched as new JSON content --- src/core/plugins/oas3/spec-extensions/wrap-selectors.js | 4 ++-- src/core/plugins/spec/actions.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/plugins/oas3/spec-extensions/wrap-selectors.js b/src/core/plugins/oas3/spec-extensions/wrap-selectors.js index d4808d0c..82c10f21 100644 --- a/src/core/plugins/oas3/spec-extensions/wrap-selectors.js +++ b/src/core/plugins/oas3/spec-extensions/wrap-selectors.js @@ -72,10 +72,10 @@ export const servers = onlyOAS3(createSelector( export const isOAS3 = (ori, system) => () => { const spec = system.getSystem().specSelectors.specJson() - return isOAS3Helper(spec) + return isOAS3Helper(Map.isMap(spec) ? spec : Map()) } export const isSwagger2 = (ori, system) => () => { const spec = system.getSystem().specSelectors.specJson() - return isSwagger2Helper(spec) + return isSwagger2Helper(Map.isMap(spec) ? spec : Map()) } diff --git a/src/core/plugins/spec/actions.js b/src/core/plugins/spec/actions.js index 6ec1ed9c..6b6324ce 100644 --- a/src/core/plugins/spec/actions.js +++ b/src/core/plugins/spec/actions.js @@ -68,7 +68,7 @@ export const parseToJson = (str) => ({specActions, specSelectors, errActions}) = line: e.mark && e.mark.line ? e.mark.line + 1 : undefined }) } - if(json) { + if(json && typeof json === "object") { return specActions.updateJsonSpec(json) } return {} From 57db23ed1fdf9ea959ee772660bf5ff9b2014199 Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Fri, 22 Dec 2017 23:30:38 -0600 Subject: [PATCH 2/2] Don't parse non-method path keys as operations --- src/core/plugins/spec/selectors.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/core/plugins/spec/selectors.js b/src/core/plugins/spec/selectors.js index ba35abc2..aee730c9 100644 --- a/src/core/plugins/spec/selectors.js +++ b/src/core/plugins/spec/selectors.js @@ -4,6 +4,10 @@ import { fromJS, Set, Map, OrderedMap, List } from "immutable" const DEFAULT_TAG = "default" +const OPERATION_METHODS = [ + "get", "put", "post", "delete", "options", "head", "patch", "trace" +] + const state = state => { return state || Map() } @@ -95,6 +99,9 @@ export const operations = createSelector( return {} } path.forEach((operation, method) => { + if(OPERATION_METHODS.indexOf(method) < 0) { + return + } list = list.push(fromJS({ path: pathName, method,