{
  "_args": [
    [
      "channels@0.0.4",
      "/tmp/tmp.nWYzzELviP/src"
    ]
  ],
  "_from": "channels@0.0.4",
  "_id": "channels@0.0.4",
  "_inCache": true,
  "_installable": true,
  "_location": "/channels",
  "_npmUser": {
    "email": "john@mclear.co.uk",
    "name": "johnyma22"
  },
  "_npmVersion": "1.2.15",
  "_phantomChildren": {},
  "_requested": {
    "name": "channels",
    "raw": "channels@0.0.4",
    "rawSpec": "0.0.4",
    "scope": null,
    "spec": "0.0.4",
    "type": "version"
  },
  "_requiredBy": [
    "/",
    "/ueberdb2"
  ],
  "_resolved": "https://registry.npmjs.org/channels/-/channels-0.0.4.tgz",
  "_shasum": "1bee323edea152bb9ef04f41bc6e6b0f5948a941",
  "_shrinkwrap": null,
  "_spec": "channels@0.0.4",
  "_where": "/tmp/tmp.nWYzzELviP/src",
  "author": {
    "email": "petermartischka@googlemail.com",
    "name": "Peter 'Pita' Martischka"
  },
  "dependencies": {},
  "description": "Event channels in node.js",
  "devDependencies": {},
  "directories": {},
  "dist": {
    "shasum": "1bee323edea152bb9ef04f41bc6e6b0f5948a941",
    "tarball": "http://registry.npmjs.org/channels/-/channels-0.0.4.tgz"
  },
  "keywords": [
    "async",
    "flow control"
  ],
  "main": "channels.js",
  "maintainers": [
    {
      "email": "petermartischka@googlemail.com",
      "name": "pita"
    },
    {
      "email": "john@mclear.co.uk",
      "name": "johnyma22"
    }
  ],
  "name": "channels",
  "optionalDependencies": {},
  "readme": "# Example\n\n```js\n/*\n  Imagine we have an airport with 2 gateways. Every gateway can only be used by one plane at the same time. \n  The planes should land in the order they registered their landing at the airport\n*/\n\nvar channels = require(\"channels\");\n\nfunction doLanding(landing, callback)\n{\n  setTimeout(function()\n  {\n    console.log(new Date().toString() + \" \" +landing.planeName + \" landed on \" + landing.gateway);\n    callback();\n  },1000);\n}\n\nvar airport = new channels.channels(doLanding);\n\nairport.emit(\"gateway1\", {planeName: \"superjet1\", gateway: \"gateway1\"});\nairport.emit(\"gateway2\", {planeName: \"superjet2\", gateway: \"gateway2\"});\n\nairport.emit(\"gateway1\", {planeName: \"superjet3\", gateway: \"gateway1\"});\nairport.emit(\"gateway2\", {planeName: \"superjet4\", gateway: \"gateway2\"});\n\nairport.emit(\"gateway1\", {planeName: \"superjet5\", gateway: \"gateway1\"});\nairport.emit(\"gateway2\", {planeName: \"superjet6\", gateway: \"gateway2\"});\n```\n## Output\n\n<pre>\nThu Jul 28 2011 18:44:52 GMT+0100 (BST) superjet1 landed on gateway1\nThu Jul 28 2011 18:44:52 GMT+0100 (BST) superjet2 landed on gateway2\nThu Jul 28 2011 18:44:53 GMT+0100 (BST) superjet3 landed on gateway1\nThu Jul 28 2011 18:44:53 GMT+0100 (BST) superjet4 landed on gateway2\nThu Jul 28 2011 18:44:54 GMT+0100 (BST) superjet5 landed on gateway1\nThu Jul 28 2011 18:44:54 GMT+0100 (BST) superjet6 landed on gateway2\n</pre>\n",
  "readmeFilename": "README.md",
  "version": "0.0.4"
}
