@@ -5,7 +5,8 @@ var https = require('https');
55var urlLib = require ( 'url' ) ;
66var querystring = require ( 'querystring' ) ;
77var objectAssign = require ( 'object-assign' ) ;
8- var duplexify = require ( 'duplexify' ) ;
8+ var PassThrough = require ( 'readable-stream' ) . PassThrough ;
9+ var duplexer2 = require ( 'duplexer2' ) ;
910var isStream = require ( 'is-stream' ) ;
1011var readAllStream = require ( 'read-all-stream' ) ;
1112var timedOut = require ( 'timed-out' ) ;
@@ -140,7 +141,9 @@ function asPromise(opts) {
140141}
141142
142143function asStream ( opts ) {
143- var proxy = duplexify ( ) ;
144+ var input = new PassThrough ( ) ;
145+ var output = new PassThrough ( ) ;
146+ var proxy = duplexer2 ( input , output ) ;
144147
145148 if ( opts . json ) {
146149 throw new Error ( 'got can not be used as stream when options.json is used' ) ;
@@ -168,7 +171,7 @@ function asStream(opts) {
168171 }
169172
170173 if ( opts . method === 'POST' || opts . method === 'PUT' || opts . method === 'PATCH' ) {
171- proxy . setWritable ( req ) ;
174+ input . pipe ( req ) ;
172175 return ;
173176 }
174177
@@ -178,7 +181,7 @@ function asStream(opts) {
178181 ee . on ( 'response' , function ( res ) {
179182 var statusCode = res . statusCode ;
180183
181- proxy . setReadable ( res ) ;
184+ res . pipe ( output ) ;
182185
183186 if ( statusCode < 200 || statusCode > 299 ) {
184187 proxy . emit ( 'error' , new got . HTTPError ( statusCode , opts ) , null , res ) ;
0 commit comments