simple-callbacks

0.1.0 • Public • Published

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.

require('simple-callbacks');

There are two functions added to cover the two main error handling methods:

  1. Returning errors to a callback
  2. Throwing an error when occurred

scReturn: Return callback errors

Imagine you have code similar to the following:

 
function getMyString(cb) {
  db.query('GET RESULT STRING', function(err, result) {
    if (err) {
      return cb(err);
    }
    
    result = result.toUpperCase();
    cb(null, result);        
  });
}

This would become:

 
function getMyString(cb) {
  db.query('GET RESULT STRING', function(result) {
    result = result.toUpperCase();
    cb(null, result);        
  }.scReturn(cb);
}

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:

 
function getMyString(cb) {
  db.query('GET RESULT STRING', function(err, result) {
    if (err) {
      throw err;
    }
    
    result = result.toUpperCase();
    cb(result);        
  });
}

This would become:

 
function getMyString(cb) {
  db.query('GET RESULT STRING', function(result) {
    result = result.toUpperCase();
    cb(result);        
  }.scThrow(cb);
}

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.

Package Sidebar

Install

npm i simple-callbacks

Weekly Downloads

0

Version

0.1.0

License

LGPL-3.0+

Last publish

Collaborators

  • martin-css