File tree Expand file tree Collapse file tree 2 files changed +30
-0
lines changed Expand file tree Collapse file tree 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) => {
5252 } else if ( event . queryStringParameters ) {
5353 Object . keys ( event . queryStringParameters ) . forEach ( ( q ) => {
5454 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+ }
5558 } )
5659 }
5760 } 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+ }
5868 Object . assign ( query , event . multiValueQueryStringParameters || event . queryStringParameters )
5969 }
6070 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) => {
184184 t . equal ( ret . body , '{"foo":["qux","bar"]}' )
185185} )
186186
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+
187207test ( 'GET with double encoded query value' , async ( t ) => {
188208 t . plan ( 2 )
189209
You can’t perform that action at this time.
0 commit comments