{"_id":"safecallback","_rev":"222833","name":"safecallback","description":"Handle callback errors safely and easily","dist-tags":{"latest":"1.0.1"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"time":{"modified":"2021-06-03T15:41:02.000Z","created":"2013-03-27T02:24:01.963Z","1.0.1":"2013-03-27T03:43:38.357Z","1.0.0":"2013-03-27T02:24:01.963Z"},"users":{},"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"repository":{"type":"git","url":"https://github.com/bevry/safecallback.git"},"versions":{"1.0.1":{"name":"safecallback","version":"1.0.1","description":"Handle callback errors safely and easily","homepage":"https://github.com/bevry/safecallback","keywords":["callback","flow","async","errors","error"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/safecallback/issues"},"repository":{"type":"git","url":"https://github.com/bevry/safecallback.git"},"engines":{"node":">=0.4"},"dependencies":{},"devDependencies":{"chai":"~1.5.0","joe":"~1.1.2"},"directories":{"lib":"./lib"},"bin":{},"scripts":{"test":"node ./test/everything-test.js"},"main":"./lib/safecallback.js","readmeFilename":"README.md","_id":"safecallback@1.0.1","dist":{"shasum":"07c7f12b4a8d9abf1b8fcddba7852eb0b8b6ed41","size":2026,"noattachment":false,"key":"/safecallback/-/safecallback-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/safecallback/download/safecallback-1.0.1.tgz"},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"publish_time":1364355818357,"_cnpm_publish_time":1364355818357,"_hasShrinkwrap":false},"1.0.0":{"name":"safecallback","version":"1.0.0","description":"Handle callback errors safely and easily","homepage":"https://github.com/bevry/safecallback","keywords":["callback","flow","async","errors","error"],"author":{"name":"Bevry Pty Ltd","email":"us@bevry.me","url":"http://bevry.me"},"maintainers":[{"name":"balupton","email":"b@lupton.cc"}],"contributors":[{"name":"Benjamin Lupton","email":"b@lupton.cc","url":"https://github.com/balupton"}],"bugs":{"url":"https://github.com/bevry/safecallback/issues"},"repository":{"type":"git","url":"https://github.com/bevry/safecallback.git"},"engines":{"node":">=0.4"},"dependencies":{},"devDependencies":{"chai":"~1.5.0","joe":"~1.1.2"},"directories":{"lib":"./lib"},"bin":{},"scripts":{"test":"node ./test/everything-test.js"},"main":"./lib/safecallback.js","readmeFilename":"README.md","_id":"safecallback@1.0.0","dist":{"shasum":"d1bf6e0334bcce1ac8b4971cb0c97a774f01ac26","size":2014,"noattachment":false,"key":"/safecallback/-/safecallback-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/safecallback/download/safecallback-1.0.0.tgz"},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"balupton","email":"b@lupton.cc"},"publish_time":1364351041963,"_cnpm_publish_time":1364351041963,"_hasShrinkwrap":false}},"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)\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\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>","_attachments":{},"readmeFilename":"README.md","homepage":"https://github.com/bevry/safecallback","bugs":{"url":"https://github.com/bevry/safecallback/issues"}}