0.1.1 • Published 7 years ago

prepared v0.1.1

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

prepared NPM version Build Status

Prepared callback error handling.

Have you ever been making a server or something or some async program, like this:

blahBlah(function (err, data) {
  if (err) return response('error happened blah blah')
  // ...
})

fooBarBaz(function (err, data) {
  if (err) return response('error happened blah blah')
  // ...
})

But you end up handling a lot of particular/noisy errors the same way?

This is a super small way of solving that:

var handler = prepared(() => response('internal server error'))

blahBlah(handler(function (data) {
  // ...
}))

fooBarBaz(handler(function (data) {
  // ...
}))

You can make them a bit more dynamic through arguments. Useful for a logging mechanism as well.

Installation

$ npm install --save prepared

Usage

prepared(errorHandler) -> handler

Prepare a Node-style callback with an error handler, so subsequent usage only focuses on data.

Parameters

  • errorHandler (Function): A node-style callback with parameters (err, ...args).

Returns

This only returns handler, another function. See docs below for more details.

Examples

var handler = prepared(function (err) {
  // handle the error...
})

handler(callback)

Create a callback function combined with your prepared error handler.

Parameters

  • callback (Function): A regular callback with no err parameter (already handled).

Returns

This only returns a Node-style callback that is combined with your previous errorHandler.

Examples

// Create `handler` function:
var h = prepared(function (err) {
  console.error('Failed to read file')
})

// Use it as a callback
fs.readFile('./blah.js', h(function (data) {
  // ...
}))

// Reuse again:
fs.readFile('./foo.txt', h(function (data) {
  // ...
}))

Arrow functions

Get slim and good looking code with arrow functions in combination with this module:

// Create `handler` function:
var h = prepared(err => console.error('Failed to read file'))

// Use it as a callback
fs.readFile('./blah.js', h(data => ...))

// Reuse again:
fs.readFile('./foo.txt', h(data => ...))

License

MIT © Jamen Marz