Code Monkey home page Code Monkey logo

Comments (8)

sindresorhus avatar sindresorhus commented on April 28, 2024 1

@shaunc From the docs:

Encoding to be used on setEncoding of the response data. If null, the body is returned as a Buffer.

binary is a string encoding, not actual binary nor buffer.

from got.

sindresorhus avatar sindresorhus commented on April 28, 2024

Yeah, I initially created this for a specific use-case I had, but I agree that would be nice.

Seems like request has an option for encoding:

encoding - Encoding to be used on setEncoding of response data. If null, the body is returned as a Buffer.

But I tend to prefer returning a buffer and let the user choose what to do with it.

OT, but curious why you're using stream.on('readable') rather than stream.on('data'). I don't get when to use which.

@floatdrop thoughts on this?

from got.

julien-f avatar julien-f commented on April 28, 2024

I am not an expert in streams but AFAIU:

  • when readable is emitted, you can call stream.read() and it will returns some data;
  • when data is emitted, you get the data directly.

One more thing: adding an handler for the data event switch the stream in flowing mode which the documentation recommends.

I think I should have used the last one.

from got.

julien-f avatar julien-f commented on April 28, 2024

After some more thoughts, I think non flowing mode is useful for back pressure (e.g. allowing a file stream to retrieve data only when needed) but is useless for this case.

from got.

floatdrop avatar floatdrop commented on April 28, 2024

I would prefer passing encoding into options and leave stuff related to binary data in stream mode of got. It just my opinion, but I often forget to do toString on buffers and get very obscure errors.

from got.

sindresorhus avatar sindresorhus commented on April 28, 2024

Hmm, yeah, when thinking about it, you'll want text in almost every case, so makes more sense to default to that. encoding option it is.

@julien-f Wanna do a PR?

from got.

julien-f avatar julien-f commented on April 28, 2024

Yep.

from got.

shaunc avatar shaunc commented on April 28, 2024

Is there any way to get response.body as a buffer if you want it that way? Seems even with {encoding: 'binary'} response body is string. Or do you have to use stream?

from got.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.