# read-all-stream [![Build Status][travis-image]][travis-url]

> Read stream to buffer or string

## Install

```
$ npm install --save read-all-stream
```

## Usage

```js
var read = require('read-all-stream');
var stream = fs.createReadStream('index.js');

read(stream).then(function (data) {
	console.log(data.length);
});

read(stream, 'utf8', function (err, data) {
	console.log(data.length);
	//=> 42
});

```

### API

#### read(stream, [options], [callback])

If callback is omitted, Promise will be returned.

##### stream

*Required*  
Type: `Stream`

Event emitter, which `data` events will be consumed.

##### options

Type: `object` or `string`

If type of `options` is `string`, then it will be used as encoding.
If type is `Object`, then next options are available:

##### options.encoding

Type: `string`, `null`  
Default: `'utf8'`

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

##### callback(err, data)

Will be called after stream is read.

###### err

`Error` object (if `error` event happens).

###### data

The data in stream.

## License

MIT © [Vsevolod Strukchinsky](floatdrop@gmail.com)

[travis-url]: https://travis-ci.org/floatdrop/read-all-stream
[travis-image]: https://img.shields.io/travis/floatdrop/read-all-stream.svg
