# error-base [![NPM version](https://img.shields.io/npm/v/error-base.svg)](https://www.npmjs.com/package/error-base) [![Build Status](https://img.shields.io/travis/doowb/error-base.svg)](https://travis-ci.org/doowb/error-base)

> Create custom Error classes.

Install with [npm](https://www.npmjs.com/):

```sh
$ npm i error-base --save
```

## Usage

```js
var errorBase = require('error-base');

// Create a new HelperError that takes additional options.
var HelperError = errorBase('HelperError', function (msg, options) {
  this.message = msg;
  this.options = options || {};
});

try {
  // Throw a HelperError given the custom arguments
  throw new HelperError('some error message', {
    helper: 'helper-name',
    foo: 'bar'
  });
} catch (err) {
  console.log(err.message);
  //=> 'some error message'

  console.log(err.options);
  //=> { helper: 'helper-name', foo: 'bar' }
}
```

## API

### [errorBase](index.js#L26)

Code modified from http://stackoverflow.com/a/27925672/914583

**Params**

* `name` **{String}**: Name of new Error Class
* `init` **{Function}**: Function to call when creating new Error
* `capture` **{Boolean}**: Optional parameter to determine if the stack trace should be captured or not. (Defaults to `true`)
* `returns` **{Function}**: new Error Class

**Example**

```js
var CustomError = errorBase('CustomError', function (msg) {
  this.msg = msg;
});
```

## Running tests

Install dev dependencies:

```sh
$ npm i -d && npm test
```

## Contributing

Pull requests and stars are always welcome. For bugs and feature requests, [please create an issue](https://github.com/doowb/error-base/issues/new).

## Author

**Brian Woodward**

* [github/doowb](https://github.com/doowb)
* [twitter/doowb](http://twitter.com/doowb)

## License

Copyright © 2016 [Brian Woodward](https://github.com/doowb)
Released under the MIT license.

***

_This file was generated by [verb](https://github.com/verbose/verb) on February 10, 2016._