11const { isIPv6 } = require ( 'node:net' ) ;
2- const { Readable } = require ( 'node:stream' ) ;
32
43module . exports = request ;
54
@@ -16,29 +15,11 @@ function request(url, { body, ...options }={}) {
1615 const req = getProtocolImplFrom ( url ) . request ( { ...options , ...preserve ( url ) } , res => {
1716 res . on ( 'error' , reject ) ;
1817
19- const body = new Readable ( { read :( ) => { } } ) ;
20- res . on ( 'error' , err => body . destroy ( err ) ) ;
21- res . on ( 'data' , data => body . push ( data ) ) ;
22- res . on ( 'end' , ( ) => body . push ( null ) ) ;
23-
24- const text = ( ) => new Promise ( ( resolve , reject ) => {
25- const chunks = [ ] ;
26- body . on ( 'error' , reject ) ;
27- body . on ( 'data' , data => chunks . push ( data ) ) ;
28- body . on ( 'end' , ( ) => resolve ( Buffer . concat ( chunks ) . toString ( 'utf8' ) ) ) ;
29- } ) ;
30-
31- const status = res . statusCode ;
32-
33- resolve ( {
34- status,
35- ok : status >= 200 && status < 300 ,
36- statusText : res . statusText ,
37- body,
38- text,
39- json : async ( ) => JSON . parse ( await text ( ) ) ,
18+ resolve ( new Response ( res , {
19+ status : res . statusCode ,
20+ statusText : res . statusMessage ,
4021 headers : new Headers ( res . headers ) ,
41- } ) ;
22+ } ) ) ;
4223 } ) ;
4324 req . on ( 'error' , reject ) ;
4425 if ( body !== undefined ) req . write ( body ) ;
0 commit comments