prepared

0.1.1 • Public • Published

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

Package Sidebar

Install

npm i prepared

Weekly Downloads

9

Version

0.1.1

License

MIT

Last publish

Collaborators

  • npm