@@ -15,8 +15,9 @@ function onlyOAS3(selector) {
1515 }
1616}
1717
18- export const selectedServer = onlyOAS3 ( state => {
19- return state . getIn ( [ "selectedServer" ] ) || ""
18+ export const selectedServer = onlyOAS3 ( ( state , namespace ) => {
19+ const path = namespace ? [ namespace , "selectedServer" ] : [ "selectedServer" ]
20+ return state . getIn ( path ) || ""
2021 }
2122)
2223
@@ -35,19 +36,68 @@ export const responseContentType = onlyOAS3((state, path, method) => {
3536 }
3637)
3738
38- export const serverVariableValue = onlyOAS3 ( ( state , server , key ) => {
39- return state . getIn ( [ "serverVariableValues" , server , key ] ) || null
39+ export const serverVariableValue = onlyOAS3 ( ( state , locationData , key ) => {
40+ let path
41+
42+ // locationData may take one of two forms, for backwards compatibility
43+ // Object: ({server, namespace?}) or String:(server)
44+ if ( typeof locationData !== "string" ) {
45+ const { server, namespace } = locationData
46+ if ( namespace ) {
47+ path = [ namespace , "serverVariableValues" , server , key ]
48+ } else {
49+ path = [ "serverVariableValues" , server , key ]
50+ }
51+ } else {
52+ const server = locationData
53+ path = [ "serverVariableValues" , server , key ]
54+ }
55+
56+ return state . getIn ( path ) || null
4057 }
4158)
4259
43- export const serverVariables = onlyOAS3 ( ( state , server ) => {
44- return state . getIn ( [ "serverVariableValues" , server ] ) || OrderedMap ( )
60+ export const serverVariables = onlyOAS3 ( ( state , locationData ) => {
61+ let path
62+
63+ // locationData may take one of two forms, for backwards compatibility
64+ // Object: ({server, namespace?}) or String:(server)
65+ if ( typeof locationData !== "string" ) {
66+ const { server, namespace } = locationData
67+ if ( namespace ) {
68+ path = [ namespace , "serverVariableValues" , server ]
69+ } else {
70+ path = [ "serverVariableValues" , server ]
71+ }
72+ } else {
73+ const server = locationData
74+ path = [ "serverVariableValues" , server ]
75+ }
76+
77+ return state . getIn ( path ) || OrderedMap ( )
4578 }
4679)
4780
48- export const serverEffectiveValue = onlyOAS3 ( ( state , server ) => {
49- let varValues = state . getIn ( [ "serverVariableValues" , server ] ) || OrderedMap ( )
50- let str = server
81+ export const serverEffectiveValue = onlyOAS3 ( ( state , locationData ) => {
82+ var varValues , serverValue
83+
84+ // locationData may take one of two forms, for backwards compatibility
85+ // Object: ({server, namespace?}) or String:(server)
86+ if ( typeof locationData !== "string" ) {
87+ const { server, namespace } = locationData
88+ serverValue = server
89+ if ( namespace ) {
90+ varValues = state . getIn ( [ namespace , "serverVariableValues" , serverValue ] )
91+ } else {
92+ varValues = state . getIn ( [ "serverVariableValues" , serverValue ] )
93+ }
94+ } else {
95+ serverValue = locationData
96+ varValues = state . getIn ( [ "serverVariableValues" , serverValue ] )
97+ }
98+
99+ varValues = varValues || OrderedMap ( )
100+ let str = serverValue
51101
52102 varValues . map ( ( val , key ) => {
53103 str = str . replace ( new RegExp ( `{${ key } }` , "g" ) , val )
0 commit comments