customError: rewrite the module using class syntax

The previous syntax caused a deprecation warning on Node 10.
However, due to the very old version of log4js Etherpad is currently using,
customError objects are going to be displayed as { inspect: [Function: inspect] }.

This needs to be addressed later, updating log4js.

Fixes #3834.
pull/3851/head
Viljami Kuosmanen 2020-04-06 19:12:15 +02:00 committed by muxator
parent e6251687bf
commit 3edd727a94
1 changed files with 21 additions and 15 deletions

View File

@ -1,17 +1,23 @@
/*
This helper modules allows us to create different type of errors we can throw
*/
function customError(message, errorName)
{
this.name = errorName || "Error";
this.message = message;
var stackParts = new Error().stack.split("\n");
stackParts.splice(0,2);
stackParts.unshift(this.name + ": " + message);
this.stack = stackParts.join("\n");
/**
* CustomError
*
* This helper modules allows us to create different type of errors we can throw
*
* @class CustomError
* @extends {Error}
*/
class CustomError extends Error {
/**
* Creates an instance of CustomError.
* @param {*} message
* @param {string} [name='Error'] a custom name for the error object
* @memberof CustomError
*/
constructor(message, name = 'Error') {
super(message);
this.name = name;
Error.captureStackTrace(this, this.constructor);
}
}
customError.prototype = Error.prototype;
module.exports = customError;
module.exports = CustomError;