{"bin":{},"bugs":{"url":"https://github.com/bevry/safecallback/issues"},"dist":{"shasum":"07c7f12b4a8d9abf1b8fcddba7852eb0b8b6ed41","tarball":"https://registry.npmjs.org/safecallback/-/safecallback-1.0.1.tgz","integrity":"sha512-iwkVkRKejb2X1WshFYVTYsJrrLpq3pRiaeyG4vycyjLrvoxaUZrjR+htwzuN87KvRO5hFCCtwspUKQbO09awRg==","signatures":[{"sig":"MEYCIQDuTfE7EAt/wrVgV8q4sdLHpjYBsJMPoI+BDRcmdtzUEwIhAM1yhuSXCPK+PpNU+pgSWtLSIfAnUxCC0cMoXd8ehggi","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/safecallback.js","name":"safecallback","_from":".","author":{"url":"http://bevry.me","name":"Bevry Pty Ltd","email":"us@bevry.me"},"readme":"# SafeCallback [![Build Status](https://secure.travis-ci.org/bevry/safecallback.png?branch=master)](http://travis-ci.org/bevry/safecallback)\n\nHandle asynchronous callback errors safely and easily\n\n## Install\n\n### Backend\n\n1. [Install Node.js](http://bevry.me/node/install)\n1. `npm install --save safecallback`\n\n### Frontend\n\n1. [See Browserify](http://browserify.org/)\n\n\n## Usage\n\n### JavaScript\n\n``` javascript\n// Before\nvar getFileContentsUpperCased = function(path,next){\n\trequire('fs').readFile(path, function(err,data){\n\t\tif(err)  return next(err)  // annoying check\n\t\treturn next(null, data.toString().toUpperCase())\n\t})\n}\n\n// After\nvar safeCallback = require('safecallback')\nvar getFileContentsUpperCased = function(path,next){\n\trequire('fs').readFile(path, safeCallback(next, function(err,data){\n\t\treturn next(null, data.toString().toUpperCase())\n\t}))\n}\n```\n\n### CoffeeScript\n\n``` coffeescript\n# Before\ngetFileContentsUpperCased = (path,next) ->\n\trequire('fs').readFile path, (err,data) ->\n\t\treturn next(err)  if err  # annoying check\n\t\treturn next(null, data.toString().toUpperCase())\n\n# After\nsafeCallback = require('safecallback')\ngetFileContentsUpperCased = (path,next) ->\n\trequire('fs').readFile path, safeCallback next, (err,data) ->\n\t\treturn next(null, data.toString().toUpperCase())\n```\n\n\n## History\nYou can discover the history inside the [History.md](https://github.com/bevry/safecallback/blob/master/History.md#files) file\n\n\n## License\nLicensed under the incredibly [permissive](http://en.wikipedia.org/wiki/Permissive_free_software_licence) [MIT License](http://creativecommons.org/licenses/MIT/)\n<br/>Copyright © 2013+ [Bevry Pty Ltd](http://bevry.me) <us@bevry.me>","engines":{"node":">=0.4"},"scripts":{"test":"node ./test/everything-test.js"},"_npmUser":{"name":"balupton","email":"b@lupton.cc"},"homepage":"https://github.com/bevry/safecallback","keywords":["callback","flow","async","errors","error"],"repository":{"url":"https://github.com/bevry/safecallback.git","type":"git"},"_npmVersion":"1.2.15","description":"Handle callback errors safely and easily","directories":{"lib":"./lib"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"url":"https://github.com/balupton","name":"Benjamin Lupton","email":"b@lupton.cc"}],"dependencies":{},"readmeFilename":"README.md","devDependencies":{"joe":"~1.1.2","chai":"~1.5.0"},"_id":"safecallback@1.0.1","version":"1.0.1"}