{"name":"through","version":"2.3.8","description":"simplified stream construction","main":"index.js","scripts":{"test":"set -e; for t in test/*.js; do node $t; done"},"devDependencies":{"stream-spec":"~0.3.5","tape":"~2.3.2","from":"~0.1.3"},"keywords":["stream","streams","user-streams","pipe"],"author":{"name":"Dominic Tarr","email":"dominic.tarr@gmail.com","url":"dominictarr.com"},"license":"MIT","repository":{"type":"git","url":"https://github.com/dominictarr/through.git"},"homepage":"https://github.com/dominictarr/through","testling":{"browsers":["ie/8..latest","ff/15..latest","chrome/20..latest","safari/5.1..latest"],"files":"test/*.js"},"readme":"#through\n\n[![build status](https://secure.travis-ci.org/dominictarr/through.png)](http://travis-ci.org/dominictarr/through)\n[![testling badge](https://ci.testling.com/dominictarr/through.png)](https://ci.testling.com/dominictarr/through)\n\nEasy way to create a `Stream` that is both `readable` and `writable`. \n\n* Pass in optional `write` and `end` methods.\n* `through` takes care of pause/resume logic if you use `this.queue(data)` instead of `this.emit('data', data)`.\n* Use `this.pause()` and `this.resume()` to manage flow.\n* Check `this.paused` to see current flow state. (`write` always returns `!this.paused`).\n\nThis function is the basis for most of the synchronous streams in \n[event-stream](http://github.com/dominictarr/event-stream).\n\n``` js\nvar through = require('through')\n\nthrough(function write(data) {\n    this.queue(data) //data *must* not be null\n  },\n  function end () { //optional\n    this.queue(null)\n  })\n```\n\nOr, can also be used _without_ buffering on pause, use `this.emit('data', data)`,\nand this.emit('end')\n\n``` js\nvar through = require('through')\n\nthrough(function write(data) {\n    this.emit('data', data)\n    //this.pause() \n  },\n  function end () { //optional\n    this.emit('end')\n  })\n```\n\n## Extended Options\n\nYou will probably not need these 99% of the time.\n\n### autoDestroy=false\n\nBy default, `through` emits close when the writable\nand readable side of the stream has ended.\nIf that is not desired, set `autoDestroy=false`.\n\n``` js\nvar through = require('through')\n\n//like this\nvar ts = through(write, end, {autoDestroy: false})\n//or like this\nvar ts = through(write, end)\nts.autoDestroy = false\n```\n\n## License\n\nMIT / Apache2\n","readmeFilename":"readme.markdown","bugs":{"url":"https://github.com/dominictarr/through/issues"},"_id":"through@2.3.8","_shasum":"0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5","_from":"https://registry.npmjs.org/through/-/through-2.3.8.tgz","_resolved":"https://registry.npmjs.org/through/-/through-2.3.8.tgz"}