File tree 2 files changed +30
-0
lines changed
2 files changed +30
-0
lines changed Original file line number Diff line number Diff line change @@ -52,9 +52,19 @@ module.exports = (app, options) => {
52
52
} else if ( event . queryStringParameters ) {
53
53
Object . keys ( event . queryStringParameters ) . forEach ( ( q ) => {
54
54
query [ decodeURIComponent ( q ) ] = decodeURIComponent ( event . queryStringParameters [ q ] )
55
+ if ( typeof query [ decodeURIComponent ( q ) ] === 'string' && query [ decodeURIComponent ( q ) ] . indexOf ( ',' ) > 0 ) {
56
+ query [ decodeURIComponent ( q ) ] = query [ decodeURIComponent ( q ) ] . split ( ',' )
57
+ }
55
58
} )
56
59
}
57
60
} else {
61
+ if ( event . queryStringParameters ) {
62
+ Object . keys ( event . queryStringParameters ) . forEach ( ( k ) => {
63
+ if ( typeof event . queryStringParameters [ k ] === 'string' && event . queryStringParameters [ k ] . indexOf ( ',' ) > 0 ) {
64
+ event . queryStringParameters [ k ] = event . queryStringParameters [ k ] . split ( ',' )
65
+ }
66
+ } )
67
+ }
58
68
Object . assign ( query , event . multiValueQueryStringParameters || event . queryStringParameters )
59
69
}
60
70
const headers = Object . assign ( { } , event . headers )
Original file line number Diff line number Diff line change @@ -184,6 +184,26 @@ test('GET with multi-value query params', async (t) => {
184
184
t . equal ( ret . body , '{"foo":["qux","bar"]}' )
185
185
} )
186
186
187
+ test ( 'GET with multi-value query params (queryStringParameters)' , async ( t ) => {
188
+ t . plan ( 2 )
189
+
190
+ const app = fastify ( )
191
+ app . get ( '/test' , async ( request , reply ) => {
192
+ reply . send ( request . query )
193
+ } )
194
+ const proxy = awsLambdaFastify ( app )
195
+
196
+ const ret = await proxy ( {
197
+ httpMethod : 'GET' ,
198
+ path : '/test' ,
199
+ queryStringParameters : {
200
+ foo : 'qux,bar'
201
+ }
202
+ } )
203
+ t . equal ( ret . statusCode , 200 )
204
+ t . equal ( ret . body , '{"foo":["qux","bar"]}' )
205
+ } )
206
+
187
207
test ( 'GET with double encoded query value' , async ( t ) => {
188
208
t . plan ( 2 )
189
209
You can’t perform that action at this time.
0 commit comments