rabin ef108495d0 edit hace 11 meses
..
test ef108495d0 edit hace 11 meses
.travis.yml ef108495d0 edit hace 11 meses
LICENSE.APACHE2 ef108495d0 edit hace 11 meses
LICENSE.MIT ef108495d0 edit hace 11 meses
index.js ef108495d0 edit hace 11 meses
package.json ef108495d0 edit hace 11 meses
readme.markdown ef108495d0 edit hace 11 meses

readme.markdown

#through

build status testling badge

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.

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')

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.

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