diff --git a/index.js b/index.js index 93eeecd..643174a 100644 --- a/index.js +++ b/index.js @@ -5,7 +5,8 @@ var https = require('https'); var urlLib = require('url'); var querystring = require('querystring'); var objectAssign = require('object-assign'); -var duplexify = require('duplexify'); +var PassThrough = require('readable-stream').PassThrough; +var duplexer2 = require('duplexer2'); var isStream = require('is-stream'); var readAllStream = require('read-all-stream'); var timedOut = require('timed-out'); @@ -140,7 +141,9 @@ function asPromise(opts) { } function asStream(opts) { - var proxy = duplexify(); + var input = new PassThrough(); + var output = new PassThrough(); + var proxy = duplexer2(input, output); if (opts.json) { throw new Error('got can not be used as stream when options.json is used'); @@ -168,7 +171,7 @@ function asStream(opts) { } if (opts.method === 'POST' || opts.method === 'PUT' || opts.method === 'PATCH') { - proxy.setWritable(req); + input.pipe(req); return; } @@ -178,7 +181,7 @@ function asStream(opts) { ee.on('response', function (res) { var statusCode = res.statusCode; - proxy.setReadable(res); + res.pipe(output); if (statusCode < 200 || statusCode > 299) { proxy.emit('error', new got.HTTPError(statusCode, opts), null, res); diff --git a/package.json b/package.json index b6a63b3..b28762f 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ ], "dependencies": { "create-error-class": "^2.0.0", - "duplexify": "^3.2.0", + "duplexer2": "^0.1.4", "is-plain-obj": "^1.0.0", "is-redirect": "^1.0.0", "is-stream": "^1.0.0", @@ -56,6 +56,7 @@ "parse-json": "^2.1.0", "pinkie-promise": "^2.0.0", "read-all-stream": "^3.0.0", + "readable-stream": "^2.0.5", "timed-out": "^2.0.0", "unzip-response": "^1.0.0", "url-parse-lax": "^1.0.0"