@@ -8,7 +8,7 @@ const {promises: fs} = require('fs');
88const cancelablePump = require ( '../cancelable-pump/index.js' ) ;
99const { Unpack} = require ( 'tar' ) ;
1010const isPlainObj = require ( 'is-plain-obj' ) ;
11- const request = require ( 'request ' ) ;
11+ const fetch = require ( 'make-fetch-happen ' ) ;
1212const Observable = require ( 'zen-observable' ) ;
1313
1414class InternalUnpack extends Unpack {
@@ -184,21 +184,24 @@ module.exports = function dlTar(...args) {
184184 observer
185185 } ) ;
186186
187- const pipe = [
188- request ( { url, ...options , encoding : null } )
189- . on ( 'response' , function ( response ) {
190- if ( response . statusCode < 200 || 299 < response . statusCode ) {
191- this . emit ( 'error' , new Error ( `${ response . statusCode } ${ response . statusMessage } ` ) ) ;
192- return ;
193- }
187+ const { baseUrl, headers} = options ;
188+ const { href} = new URL ( url , baseUrl ) ;
194189
195- if ( typeof response . headers [ 'content-length' ] === 'string' ) {
196- response . headers [ 'content-length' ] = Number ( response . headers [ 'content-length' ] ) ;
197- }
190+ const res = await fetch ( href , { headers} ) . then ( response => {
198191
199- unpackStream . url = response . request . uri . href ;
200- unpackStream . responseHeaders = response . headers ;
201- } ) ,
192+ if ( response . ok !== true ) {
193+ throw new Error ( `${ response . status } ${ response . statusText } ` ) ;
194+ }
195+
196+ unpackStream . url = response . url ;
197+ unpackStream . responseHeaders = response . headers ;
198+
199+ return response ;
200+
201+ } ) ;
202+
203+ const pipe = [
204+ res . body ,
202205 new Transform ( {
203206 transform ( chunk , encoding , cb ) {
204207 unpackStream . responseBytes += chunk . length ;
0 commit comments