22 lines
536 B
JavaScript
22 lines
536 B
JavaScript
/**
|
|
* Create a class inheriting from Error.
|
|
*/
|
|
function createErrorClass(name) {
|
|
const klass = class extends Error {
|
|
/**
|
|
* Custom error class constructor.
|
|
* @param {string} message
|
|
*/
|
|
constructor(message) {
|
|
super(message);
|
|
|
|
// Override `name` property value and make it non enumerable.
|
|
Object.defineProperty(this, 'name', { value: name });
|
|
}
|
|
};
|
|
|
|
return klass;
|
|
}
|
|
|
|
export const InvalidStateError = createErrorClass('InvalidStateError');
|