Simple helper for sub-classing the Error object

Usage no npm install needed!

<script type="module">
  import createError from '';



A simple helper for creating subclassed errors in Javascript.

Build Status


$ npm   install create-error
$ bower install create-error
var createError    = require('create-error');
var MyCustomError  = createError('MyCustomError');
var SubCustomError = createError(MyCustomError, 'CoolSubError', {messages: []});

var sub = new SubCustomError('My Message');

sub instanceof SubCustomError // true
sub instanceof MyCustomError  // true
sub instanceof Error          // true

assert.deepEqual(sub.messages, []) // true

createError(name, [properties])

Creates a new error by specifying the name of the error to be created, taking an optional hash of properties to be attached to the error class upon creation.

createError(Target, [name, [properties]])

Create a new error by specifying the Target error class we wish to inherit from, along with an optional name and properties for the error. If the name is omitted, it will have the same name as the parent error.

Additional Notes:

In the browser, the function will be assigned to window.createError, and createError.noConflict() will restore the original window.createError if overwritten.