The 'data' event is emitted whenever the stream is relinquishing ownership of a chunk of data to a consumer.
Emitted when any error occurs.
The 'end' event is emitted when there is no more data to be consumed from the stream. The 'end' event will not be emitted unless the data is completely consumed.
A interface that emulates the API shape of a node.js readable stream for use in desktop and web environments.