browserify / browserify/http-browserify

Response inherits from Stream instead of Stream.Readable (requiring request module browserify workaround)

Ouverte
#81 4 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
JavaScript
Étoiles
245
Forks
104
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

On node.js, the HTTP response object (which is named IncomingMessage in node.js) [inherits from Stream.Readable](https://github.com/request/request/commit/6ebd748a02a49976d41ebbc4f8396acf8fda1c14):

``` javascript
util.inherits(IncomingMessage, Stream.Readable);
```

but in http-browserify, it [only inherits from Stream](https://github.com/joyent/node/blob/1781c8b85bbabc4c5c1e054bd5c50903cc0eb47b/lib/_http_incoming.js#L80):

``` javascript
util.inherits(Response, Stream);
```

This means the full stream API is not available as it is in Node, including the [.resume](http://nodejs.org/api/stream.html#stream_readable_resume)() method. I believe this is the reason for [this ](https://github.com/request/request/commit/6ebd748a02a49976d41ebbc4f8396acf8fda1c14) [hack](https://github.com/request/request/blob/a60482bf06b7e16d3cdbabcdee7f0b62d93117c2/request.js#L973-975) in the [request](http://github.com/request/request) module:

``` javascript
} else if (response.resume) {
// response.resume should be defined, but check anyway before calling.
// Workaround for browserify.
response.resume()
}
```

to improve compatibility would it be possible for http-browserify Response to inherit from Stream.Readable? (are there any other changes needed than changing the utils.inherits call?)

edit: Stream is old-style (pre-0.10); this amounts to converting http-browserify to [Streams2](https://rawgit.com/rvagg/rvagg.github.com/master/2014/06/why-i-dont-use-nodes-core-stream-module.html)

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par la définition de Response dans http-browserify et son appel à util.inherits, puis comparez-la avec l’héritage d’IncomingMessage de Node présenté dans l’issue. Examinez le contournement dans request.js et déterminez si la conversion de Response en Streams2 nécessite des changements au-delà de l’héritage. Le travail est terminé lorsque la réponse du navigateur expose l’API Readable attendue, y compris resume(), sans ce contournement de compatibilité.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript, node.js
Domaine
web-dev
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.