@@ -76,7 +76,7 @@ export class RequestParameterMutator {
76
76
const i = req . originalUrl . indexOf ( '?' ) ;
77
77
const queryString = req . originalUrl . substr ( i + 1 ) ;
78
78
79
- if ( parameter . in === 'query' && ! parameter . allowReserved ) {
79
+ if ( parameter . in === 'query' && ! parameter . allowReserved && parameter . explode === true ) {
80
80
this . validateReservedCharacters ( name , rawQuery ) ;
81
81
}
82
82
@@ -94,7 +94,15 @@ export class RequestParameterMutator {
94
94
} else if ( type === 'array' && ! explode ) {
95
95
const delimiter = ARRAY_DELIMITER [ parameter . style ] ;
96
96
this . validateArrayDelimiter ( delimiter , parameter ) ;
97
- this . parseJsonArrayAndMutateRequest ( req , parameter . in , name , delimiter ) ;
97
+ if ( parameter . in === "query" ) {
98
+ const field = REQUEST_FIELDS [ parameter . in ] ;
99
+ const vs = rawQuery . get ( name ) ;
100
+ if ( vs ) {
101
+ req [ field ] [ name ] = vs [ 0 ] . split ( delimiter ) . map ( v => decodeURIComponent ( v ) ) ;
102
+ }
103
+ } else {
104
+ this . parseJsonArrayAndMutateRequest ( req , parameter . in , name , delimiter ) ;
105
+ }
98
106
} else if ( type === 'array' && explode ) {
99
107
this . explodeJsonArrayAndMutateRequest ( req , parameter . in , name ) ;
100
108
} else if ( style === 'form' && explode ) {
0 commit comments