1
1
import Busboy from 'busboy' ;
2
2
3
- const getConfig = event => {
4
- return {
5
- headers : {
6
- 'content-type' : event . headers [ 'content-type' ] || event . headers [ 'Content-Type' ] ,
7
- } ,
8
- } ;
9
- } ;
10
-
11
3
export const parseMultipartFormData = async request => {
12
4
const { event } = request ;
13
5
@@ -16,12 +8,15 @@ export const parseMultipartFormData = async request => {
16
8
fields : { } ,
17
9
} ;
18
10
19
- const busboy = new Busboy ( getConfig ( event ) ) ;
11
+ const busboyHeaders = { ...request . headers } ;
12
+ busboyHeaders [ 'content-type' ] = event . headers [ 'content-type' ] || event . headers [ 'Content-Type' ] ;
13
+
14
+ const busboy = Busboy ( { headers : busboyHeaders } ) ;
20
15
21
16
return new Promise ( ( resolve , reject ) => {
22
17
const buffers = [ ] ;
23
-
24
- busboy . on ( 'file' , ( fieldName , file , fileName , encoding , mimeType ) => {
18
+ busboy . on ( 'file' , ( name , file , info ) => {
19
+ const { filename , encoding, mimeType } = info ;
25
20
const userSubmittedFile = { } ;
26
21
27
22
file . on ( 'data' , data => {
@@ -33,10 +28,10 @@ export const parseMultipartFormData = async request => {
33
28
file . on ( 'end' , ( ) => {
34
29
if ( buffers . length ) {
35
30
userSubmittedFile . content = Buffer . concat ( buffers ) ;
36
- userSubmittedFile . fileName = fileName ;
31
+ userSubmittedFile . fileName = filename ;
37
32
userSubmittedFile . contentType = mimeType ;
38
33
userSubmittedFile . encoding = encoding ;
39
- userSubmittedFile . fieldName = fieldName ;
34
+ userSubmittedFile . fieldName = name ;
40
35
formData . files . push ( userSubmittedFile ) ;
41
36
}
42
37
} ) ;
@@ -50,7 +45,7 @@ export const parseMultipartFormData = async request => {
50
45
reject ( error ) ;
51
46
} ) ;
52
47
53
- busboy . on ( 'finish ' , ( ) => {
48
+ busboy . on ( 'close ' , ( ) => {
54
49
request . addRequestData ( 'formData' , formData ) ;
55
50
resolve ( ) ;
56
51
} ) ;
0 commit comments