Skip to content

Commit 7d60893

Browse files
committed
Parse headers and queryStringParameters (not only multi)
1 parent 7a011ef commit 7d60893

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

src/request.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,12 @@ class Request extends ReadableStream {
99
constructor(event) {
1010
super();
1111

12-
event.multiValueHeaders = event.multiValueHeaders || {};
12+
if (!event.multiValueHeaders) {
13+
event.multiValueHeaders = {}
14+
for (const header in event.headers) {
15+
event.multiValueHeaders[header] = [event.headers[header]]
16+
}
17+
}
1318

1419
this.headers = Object.keys(event.multiValueHeaders).reduce((headers, key) => {
1520
const value = event.multiValueHeaders[key];
@@ -20,7 +25,13 @@ class Request extends ReadableStream {
2025
this.hostname = this.headers.host || '';
2126
this.method = event.httpMethod;
2227

23-
event.multiValueQueryStringParameters = event.multiValueQueryStringParameters || {};
28+
if (!event.multiValueQueryStringParameters) {
29+
event.multiValueQueryStringParameters = {}
30+
for (const queryParam in event.queryStringParameters) {
31+
event.multiValueQueryStringParameters[queryParam] = [event.queryStringParameters[queryParam]]
32+
}
33+
}
34+
2435
this.query = Object.keys(event.multiValueQueryStringParameters).reduce((queryParams, key) => {
2536
const value = event.multiValueQueryStringParameters[key];
2637
queryParams[key] = value.length > 1 ? value : value[0];

src/request.spec.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,15 @@ describe('Request object', () => {
6262

6363
it('should read query as empty object if there is no queryparamters', () => {
6464
delete event.multiValueQueryStringParameters;
65+
event.queryStringParameters = {}
6566
const request = new Request(event);
6667

6768
expect(request.query).toEqual({});
6869
});
6970

7071
it('should read headers as empty object if there is no headers', () => {
7172
delete event.multiValueHeaders;
73+
event.headers = {}
7274
delete event.body;
7375
const request = new Request(event);
7476

0 commit comments

Comments
 (0)