1
1
'use strict'
2
2
3
- const Busboy = require ( 'busboy' )
4
3
const util = require ( '../core/util' )
5
4
const {
6
5
ReadableStreamFrom,
@@ -21,6 +20,7 @@ const { isErrored } = require('../core/util')
21
20
const { isUint8Array, isArrayBuffer } = require ( 'util/types' )
22
21
const { File : UndiciFile } = require ( './file' )
23
22
const { parseMIMEType, serializeAMimeType } = require ( './dataURL' )
23
+ const { FormDataParser } = require ( '../formdata/parser' )
24
24
25
25
let ReadableStream = globalThis . ReadableStream
26
26
@@ -374,21 +374,21 @@ function bodyMixinMethods (instance) {
374
374
375
375
const responseFormData = new FormData ( )
376
376
377
- let busboy
377
+ let parser
378
378
379
379
try {
380
- busboy = Busboy ( {
380
+ parser = new FormDataParser ( {
381
381
headers,
382
382
defParamCharset : 'utf8'
383
383
} )
384
384
} catch ( err ) {
385
385
throw new DOMException ( `${ err } ` , 'AbortError' )
386
386
}
387
387
388
- busboy . on ( 'field' , ( name , value ) => {
388
+ parser . on ( 'field' , ( name , value ) => {
389
389
responseFormData . append ( name , value )
390
390
} )
391
- busboy . on ( 'file' , ( name , value , info ) => {
391
+ parser . on ( 'file' , ( name , value , info ) => {
392
392
const { filename, encoding, mimeType } = info
393
393
const chunks = [ ]
394
394
@@ -417,14 +417,14 @@ function bodyMixinMethods (instance) {
417
417
}
418
418
} )
419
419
420
- const busboyResolve = new Promise ( ( resolve , reject ) => {
421
- busboy . on ( 'finish ' , resolve )
422
- busboy . on ( 'error' , ( err ) => reject ( new TypeError ( err ) ) )
420
+ const promise = new Promise ( ( resolve , reject ) => {
421
+ parser . on ( 'close ' , ( ) => resolve ( ) )
422
+ parser . on ( 'error' , ( err ) => reject ( new TypeError ( err ) ) )
423
423
} )
424
424
425
- if ( this . body !== null ) for await ( const chunk of consumeBody ( this [ kState ] . body ) ) busboy . write ( chunk )
426
- busboy . end ( )
427
- await busboyResolve
425
+ if ( this . body !== null ) for await ( const chunk of consumeBody ( this [ kState ] . body ) ) parser . write ( chunk )
426
+ parser . end ( )
427
+ await promise
428
428
429
429
return responseFormData
430
430
} else if ( / a p p l i c a t i o n \/ x - w w w - f o r m - u r l e n c o d e d / . test ( contentType ) ) {
0 commit comments