ladjs / superagent

Ajax for Node.js and browsers (JS HTTP client). Maintained for @forwardemail, @ladjs, @spamscanner, @breejs, @cabinjs, and @lassjs.
https://ladjs.github.io/superagent/
MIT License
16.59k stars 1.33k forks source link

Disabled buffering gets enabled for images #1603

Open Magomogo opened 4 years ago

Magomogo commented 4 years ago

I've found that superagent.buffer(false) invocation don't really work, here is an example:

const superagent = require('superagent')

superagent
    .get('https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png')
    .buffer(false)
    .end((err, res) => {
        console.log(res.buffered)
    })

Output is true, which I believe is a bug.

I need to process the unbuffered response and then decide whether to pipe it to some stream, but I can't do that, because response stream is already consumed and written into res.body.

As a workaround I've set empty parser: superagent.get().buffer(false).parse((res, cb) => cb())

Reproduced at superagent@6.1.0