browserify / browserify/http-browserify
Response inherits from Stream instead of Stream.Readable (requiring request module browserify workaround)
- 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