| 
						 | 
						- #through
 - 
 - [](http://travis-ci.org/dominictarr/through)
 - [](https://ci.testling.com/dominictarr/through)
 - 
 - Easy way to create a `Stream` that is both `readable` and `writable`. 
 - 
 - * Pass in optional `write` and `end` methods.
 - * `through` takes care of pause/resume logic if you use `this.queue(data)` instead of `this.emit('data', data)`.
 - * Use `this.pause()` and `this.resume()` to manage flow.
 - * Check `this.paused` to see current flow state. (`write` always returns `!this.paused`).
 - 
 - This function is the basis for most of the synchronous streams in 
 - [event-stream](http://github.com/dominictarr/event-stream).
 - 
 - ``` js
 - var through = require('through')
 - 
 - through(function write(data) {
 -     this.queue(data) //data *must* not be null
 -   },
 -   function end () { //optional
 -     this.queue(null)
 -   })
 - ```
 - 
 - Or, can also be used _without_ buffering on pause, use `this.emit('data', data)`,
 - and this.emit('end')
 - 
 - ``` js
 - var through = require('through')
 - 
 - through(function write(data) {
 -     this.emit('data', data)
 -     //this.pause() 
 -   },
 -   function end () { //optional
 -     this.emit('end')
 -   })
 - ```
 - 
 - ## Extended Options
 - 
 - You will probably not need these 99% of the time.
 - 
 - ### autoDestroy=false
 - 
 - By default, `through` emits close when the writable
 - and readable side of the stream has ended.
 - If that is not desired, set `autoDestroy=false`.
 - 
 - ``` js
 - var through = require('through')
 - 
 - //like this
 - var ts = through(write, end, {autoDestroy: false})
 - //or like this
 - var ts = through(write, end)
 - ts.autoDestroy = false
 - ```
 - 
 - ## License
 - 
 - MIT / Apache2
 
 
  |