{
  "_args": [
    [
      "through@https://registry.npmjs.org/through/-/through-2.3.8.tgz",
      "/Users/gajus/Documents/dev/canonical-code-style/canonical"
    ]
  ],
  "_from": "through@>=2.3.6 <3.0.0",
  "_id": "through@2.3.8",
  "_inCache": true,
  "_location": "/through",
  "_phantomChildren": {},
  "_requested": {
    "name": "through",
    "raw": "through@https://registry.npmjs.org/through/-/through-2.3.8.tgz",
    "rawSpec": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
    "scope": null,
    "spec": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
    "type": "remote"
  },
  "_requiredBy": [
    "/inquirer",
    "/regenerator"
  ],
  "_resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
  "_shasum": "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5",
  "_shrinkwrap": null,
  "_spec": "through@https://registry.npmjs.org/through/-/through-2.3.8.tgz",
  "_where": "/Users/gajus/Documents/dev/canonical-code-style/canonical",
  "author": {
    "email": "dominic.tarr@gmail.com",
    "name": "Dominic Tarr",
    "url": "dominictarr.com"
  },
  "bugs": {
    "url": "https://github.com/dominictarr/through/issues"
  },
  "dependencies": {},
  "description": "simplified stream construction",
  "devDependencies": {
    "from": "~0.1.3",
    "stream-spec": "~0.3.5",
    "tape": "~2.3.2"
  },
  "homepage": "https://github.com/dominictarr/through",
  "keywords": [
    "pipe",
    "stream",
    "streams",
    "user-streams"
  ],
  "license": "MIT",
  "main": "index.js",
  "name": "through",
  "optionalDependencies": {},
  "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",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/dominictarr/through.git"
  },
  "scripts": {
    "test": "set -e; for t in test/*.js; do node $t; done"
  },
  "testling": {
    "browsers": [
      "chrome/20..latest",
      "ff/15..latest",
      "ie/8..latest",
      "safari/5.1..latest"
    ],
    "files": "test/*.js"
  },
  "version": "2.3.8"
}
