Skip to content

Commit bbea18c

Browse files
committed
better support for duplicate headers for format 2.0, shoud fix #125
1 parent f509a5c commit bbea18c

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

index.js

+10
Original file line numberDiff line numberDiff 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)

test/basic.test.js

+20
Original file line numberDiff line numberDiff 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+
187207
test('GET with double encoded query value', async (t) => {
188208
t.plan(2)
189209

0 commit comments

Comments
 (0)