2.0.5 • Published 7 years ago

howhap v2.0.5

Weekly downloads
139
License
ISC
Repository
github
Last release
7 years ago

Houston, we have a problem

Howhap is a small library for dealing with parameterized errors.

npm install --save howhap

let Howhap = require('howhap');

// Each error needs a message and a status code.
let authError = new Howhap({
	message: 'Please enter a password.',
	status: 400
});

// Errors can also use simple templating
let emailError = new Howhap({
	message: '"{{ email }}" is not a valid email.',
	status: 400
}, { email: 'fake' });

// You can display error messages as a string
emailError.toString(); // "fake" is not a valid email

// Or JSON
emailError.toJSON();
/*
 * {
 *	  message: '"{{ email }}" is not a valid email.',
 *	  status: 400,
 *	  params: { email: 'fake' }
 * }
 */

Properties

message

type: string

	err.message = 'Something went wrong {{ e }}';
status

type: integer or string representation of an integer

	err.status = 400;
	err.status = '500';
params

type: object

	err.params = { e: 'foo' };
	

Methods

Howhap.prototype.toString()

returns: a string representation of the error with parameters replaced.

let err = new Howhap(
	{message: '{{ x }} went wrong', status: 500},
	{ x: 'a thing' }
);
console.log(err.toString()); // 'a thing went wrong'
Howhap.prototype.toJSON()

returns: an object representation of the error.

let err = new Howhap(
	{message: '{{ x }} went wrong', status: 500},
	{ x: 'a thing' }
);
console.log(err.toJSON());
// {
//     message: '{{ x }} went wrong',
//     status: 500,
//     params: { x: 'a thing' }
// }
Howhap.prototype.set(obj)

obj: an object with message, status and params properties.

sets all error properties (message, status, params) in one function call.

let err = new Howhap(
	{message: '{{ x }} went wrong', status: 500},
	{ x: 'a thing' }
);
err.set({
	message: '{{ model }} was not found',
	status: 404,
	params: { model: 'User' }
})
console.log(err.toJSON());
// {
//     message: '{{ model }} was not found',
//     status: 404,
//     params: { model: 'User' }
// }
console.log(err.toString()); // User was not found