.gitignore added
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / create-error-class / index.js
1 'use strict';
2 var captureStackTrace = require('capture-stack-trace');
3
4 function inherits(ctor, superCtor) {
5         ctor.super_ = superCtor;
6         ctor.prototype = Object.create(superCtor.prototype, {
7                 constructor: {
8                         value: ctor,
9                         enumerable: false,
10                         writable: true,
11                         configurable: true
12                 }
13         });
14 }
15
16 module.exports = function createErrorClass(className, setup) {
17         if (typeof className !== 'string') {
18                 throw new TypeError('Expected className to be a string');
19         }
20
21         if (/[^0-9a-zA-Z_$]/.test(className)) {
22                 throw new Error('className contains invalid characters');
23         }
24
25         setup = setup || function (message) {
26                 this.message = message;
27         };
28
29         var ErrorClass = function () {
30                 Object.defineProperty(this, 'name', {
31                         configurable: true,
32                         value: className,
33                         writable: true
34                 });
35
36                 captureStackTrace(this, this.constructor);
37
38                 setup.apply(this, arguments);
39         };
40
41         inherits(ErrorClass, Error);
42
43         return ErrorClass;
44 };