@@ -3,25 +3,28 @@ import type { IncomingMessage } from 'http';
3
3
import type { ALBEvent , ALBResult , Handler } from 'aws-lambda' ;
4
4
import { createMockServer } from './mockServer' ;
5
5
6
- export function createMockALBServer ( handler : Handler < ALBEvent , ALBResult > , shouldBase64Encode : boolean ) {
6
+ export function createMockALBServer (
7
+ handler : Handler < ALBEvent , ALBResult > ,
8
+ shouldBase64Encode : boolean ,
9
+ ) {
7
10
return createMockServer ( handler , albEventFromRequest ( shouldBase64Encode ) ) ;
8
11
}
9
12
10
13
function albEventFromRequest ( shouldBase64Encode : boolean ) {
11
14
return function ( req : IncomingMessage , body : string ) : ALBEvent {
12
15
const urlObject = url . parse ( req . url || '' , false ) ;
13
16
const searchParams = new URLSearchParams ( urlObject . search ?? '' ) ;
14
-
17
+
15
18
const multiValueQueryStringParameters : ALBEvent [ 'multiValueQueryStringParameters' ] =
16
19
{ } ;
17
-
20
+
18
21
for ( const [ key ] of searchParams . entries ( ) ) {
19
22
const all = searchParams . getAll ( key ) ;
20
23
if ( all . length > 1 ) {
21
24
multiValueQueryStringParameters [ key ] = all ;
22
25
}
23
26
}
24
-
27
+
25
28
return {
26
29
requestContext : {
27
30
elb : {
@@ -41,9 +44,10 @@ function albEventFromRequest(shouldBase64Encode: boolean) {
41
44
} ) ,
42
45
) ,
43
46
multiValueQueryStringParameters,
44
- body : shouldBase64Encode ? Buffer . from ( body , 'utf8' ) . toString ( 'base64' ) : body ,
47
+ body : shouldBase64Encode
48
+ ? Buffer . from ( body , 'utf8' ) . toString ( 'base64' )
49
+ : body ,
45
50
isBase64Encoded : shouldBase64Encode ,
46
51
} ;
47
- }
52
+ } ;
48
53
}
49
-
0 commit comments