JSPM

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

Helper for creating easily extensible and subclassable JavaScript Error classes.

Package Exports

  • createerror

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 (createerror) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

node-createerror

Helper for creating easily extensible and subclassable JavaScript Error classes.

Installation

Make sure you have node.js and npm installed, then run:

npm install createerror

Usage

var createError = require('createerror');

var MyError = createError({
    name: 'MyError',
    // Used when no message is handed to the constructor:
    message: 'A slightly longer description of the error'
});

Instances can carry extra data about the error:

try {
    throw new MyError({
        message: "The message", // Not mandatory
        data: {disallowedIds: [1, 3, 4, 6]}
    });
} catch(e) {
    console.warn(e.data); // {disallowedIds: [1, 3, 4, 6]}
}

Inheriting from an existing Error class (the Error classes in the httpErrors module also use createError):

var httpErrors = require('httperrors');

var NotFoundUnderTheBedError = createError({
    name: 'NotFoundUnderTheBed',
    message: 'I looked under the bed, but it was not found'
}, httpErrors.NotFound);

Instances of this error walk and quack like httpErrors.NotFound instances, of course:

var ohDear = new NotFoundUnderTheBedError('No monsters today');
console.warn(ohDear.NotFound); // true
console.warn(ohDear.NotFoundUnderTheBed); // true

License

3-clause BSD license -- see the LICENSE file for details.