{
  "name": "after",
  "description": "after - tiny flow control",
  "version": "0.8.1",
  "author": {
    "name": "Raynos",
    "email": "raynos2@gmail.com"
  },
  "contributors": [
    {
      "name": "Raynos",
      "email": "raynos2@gmail.com",
      "url": "http://raynos.org"
    }
  ],
  "scripts": {
    "test": "mocha --ui tdd --reporter spec test/*.js"
  },
  "devDependencies": {
    "mocha": "~1.8.1"
  },
  "keywords": [
    "flowcontrol",
    "after",
    "flow",
    "control",
    "arch"
  ],
  "repository": {
    "type": "git",
    "url": "git://github.com/Raynos/after.git"
  },
  "readme": "# After [![Build Status][1]][2]\n\nInvoke callback after n calls\n\n## Status: production ready\n\n## Example\n\n    var after = require(\"after\")\n        , next = after(3, logItWorks)\n\n    next()\n    next()\n    next() // it works\n\n    function logItWorks() {\n        console.log(\"it works!\")\n    }\n\n## Example with error handling\n\n    var after = require(\"after\")\n        , next = after(3, logError)\n\n    next()\n    next(new Error(\"oops\")) // logs oops\n    next() // does nothing\n\n    function logError(err) {\n        console.log(err)\n    }\n\n## After < 0.6.0\n\nOlder versions of after had iterators and flows in them.\n\nThese have been replaced with seperate modules\n\n - [iterators][8]\n - [composite][9]\n\n## Installation\n\n`npm install after`\n\n## Tests\n\n`npm test`\n\n## Blog post\n\n - [Flow control in node.js][3]\n\n## Examples :\n\n - [Determining the end of asynchronous operations][4]\n - [In javascript what are best practices for executing multiple asynchronous functions][5]\n - [JavaScript performance long running tasks][6]\n - [Synchronous database queries with node.js][7]\n\n## Contributors\n\n - Raynos\n\n## MIT Licenced\n\n  [1]: https://secure.travis-ci.org/Raynos/after.png\n  [2]: http://travis-ci.org/Raynos/after\n  [3]: http://raynos.org/blog/2/Flow-control-in-node.js\n  [4]: http://stackoverflow.com/questions/6852059/determining-the-end-of-asynchronous-operations-javascript/6852307#6852307\n  [5]: http://stackoverflow.com/questions/6869872/in-javascript-what-are-best-practices-for-executing-multiple-asynchronous-functi/6870031#6870031\n  [6]: http://stackoverflow.com/questions/6864397/javascript-performance-long-running-tasks/6889419#6889419\n  [7]: http://stackoverflow.com/questions/6597493/synchronous-database-queries-with-node-js/6620091#6620091\n  [8]: http://github.com/Raynos/iterators\n  [9]: http://github.com/Raynos/composite\n",
  "readmeFilename": "README.md",
  "bugs": {
    "url": "https://github.com/Raynos/after/issues"
  },
  "_id": "after@0.8.1",
  "dist": {
    "shasum": "ab5d4fb883f596816d3515f8f791c0af486dd627",
    "tarball": "http://registry.npmjs.org/after/-/after-0.8.1.tgz"
  },
  "_from": "after@0.8.1",
  "_npmVersion": "1.2.25",
  "_npmUser": {
    "name": "raynos",
    "email": "raynos2@gmail.com"
  },
  "maintainers": [
    {
      "name": "raynos",
      "email": "raynos2@gmail.com"
    },
    {
      "name": "shtylman",
      "email": "shtylman@gmail.com"
    }
  ],
  "directories": {},
  "_shasum": "ab5d4fb883f596816d3515f8f791c0af486dd627",
  "_resolved": "https://registry.npmjs.org/after/-/after-0.8.1.tgz",
  "homepage": "https://github.com/Raynos/after"
}
