JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 327
  • Score
    100M100P100Q92252F
  • License MIT

Simply create sub-classed Boom errors for Hapi applications.

Package Exports

  • create-boom-error

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (create-boom-error) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

create-boom-error npm version Build Status

A simple Node.js library for easily creating classed Boom errors in Hapi applications.

Installation

yarn add create-boom-error

Usage

createBoomError(name, statusCode, [message], [code])

Creates a Boom error.

  • name - The name of the error.
  • statusCode - the integer status code of the Boom error
  • message - an optional string or function which returns a string
  • code - an optional machine-keyable error status string

Create a simple error

var createBoomError = require('create-boom-error');

var MyError = createBoomError('MyError', 404, 'simple message', 'not_found');

var err = new MyError();

// err is an instance of MyError making it easy to check in tests
err instanceof MyError // => true

// err.code will match the code argument passed in
err.code // => 'not_found'

Note that if the optional code argument is NOT passed in then the .code field attached to the error will default to a decamelized, snake case version of the name. For example:

const MyError = createBoomError('MyError', 404, 'simple message');

const err = new MyError();

// err is an instance of MyError making it easy to check in tests
err instanceof MyError // => true

// err.code will return the name argument decamelized and in snake case
err.code // => 'my_error'

Create an error with a dynamic message

var MyError = createBoomError('MyError', 404, function (num) {
  return 'You must have more than ' + num + ' coins.';
});

var err = new MyError(4);

// err now has the dynamic message
err.message // => 'You must have more than 4 coins.'

Automatically exporting an error

This is a useful shortcut if you have a file in your application where you want to declare all your errors and automatically export them. Simply call .bind(exports) when requiring the create-boom-error library.

// in customErrors.js
var createBoomError = require('create-boom-error').bind(exports);

createBoomError('TestError', 400, 'test message');

This error is automatically exported in customError.js:

// in another file
var CustomErrors = require('./customErrors');

var err = new CustomErrors.TestError();

err instanceof CustomErrors.TestError // => true

Development

Run tests

yarn test