simple-callbacks
Simple & automatic callback error handling for your node callbacks. Helps prevents lots of repetitive error handling. You'll also find this beneficial if you write unit tests as it will prevent you needing to add test cases that test the error handling in every callback! Your unit testing code coverage reports will thank you.
Please note that this is designed as a simple solution to situations where you need a simple callback or two. It is not designed to avoid callback hell. For that, I recommend you use the control functionality in async.
Usage
Install via NPM
$ npm install simple-callbacks
The module extends the function prototype so you only need to require the module once in your application, e.g. in the main app.js file.
;
There are two functions added to cover the two main error handling methods:
- Returning errors to a callback
- Throwing an error when occurred
scReturn: Return callback errors
Imagine you have code similar to the following:
{ db;}
This would become:
{ db
Your callback function will be passed all relevant parameters that would normally be invoked, excluding the first error parameter.
The easiest way to think of it is to remove your error checking code, error parameter and append .scReturn(cb)
to the end of your function declaration.
scThrow: Throw callback errors
Imagine you have code similar to the following:
{ db;}
This would become:
{ db
Your callback function will be passed all relevant parameters that would normally be invoked, excluding the first error parameter.
Simply remove the error checking code, error parameter and append .scThrow() to your function declaration.
Tests
To run the unit tests, run
npm install
npm test
Issues
Please use the GitHub issue tracker to raise any problems or feature requests.
If you would like to submit a pull request with any changes you make, please feel free!
Legal
Code is Copyright (C) Campbell Software Solutions 2014.
This module is available under terms of the LGPL V3 license. Hence you can use it in other proprietary projects but any changes to the library should be made available.