JSPM

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

Make your own error types!

Package Exports

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

Readme

make-error

Build Status Dependency Status devDependency Status

Make your own error types!

Features

  • Compatible Node & browsers
  • instanceof support
  • error.name & error.stack support
  • compatible with CSP (i.e. no eval())

Installation

Node & Browserify

Installation of the npm package:

> npm install --save make-error

Then require the package:

var makeError = require('make-error');

Browser

Clone the git repository and compile the browser version of the library:

> git clone https://github.com/julien-f/js-make-error.git
> npm install
> npm run browserify

Then import the script make-error.js which has been compiled in the dist/ directory:

<script src="make-error.js"></script>

Usage

Basic named error

var CustomError = makeError('CustomError')

// Parameters are forwarded to the super class (here Error).
throw new CustomError('a message')

Advanced error class

function CustomError (customValue) {
  CustomError.super.call(this, 'custom error message')

  this.customValue = customValue
}
makeError(CustomError)

// Feel free to extend the prototype.
CustomError.prototype.myMethod = function CustomError$myMethod () {
  console.log('CustomError.myMethod (%s, %s)', this.code, this.message)
}

//-----

try {
  throw new CustomError(42)
} catch (error) {
  error.myMethod()
}

Specialized error

var SpecializedError = makeError('SpecializedError', CustomError);

throw new SpecializedError(42);

Inheritance

Best for ES6.

import {BaseError} from 'make-error'

class CustomError extends BaseError {
  constructor () {
    super('custom error message')
  }
}

Contributions

Contributions are very welcomed, either on the documentation or on the code.

You may:

  • report any issue you've encountered;
  • fork and create a pull request.

License

ISC © Julien Fontanet