export class CustomError extends Error { errorCode : number ; statusCode : number ; originalError ? : Error ; constructor ( message , statusCode = 400 , errorCode = 400 , originalError ? ) { super ( message ) ; this . name = this . constructor . name ; this . message = message ; this . statusCode = statusCode ; this . errorCode = errorCode ; this . originalError = originalError ; if ( typeof Error . captureStackTrace === "function" ) { Error . captureStackTrace ( this , this . constructor ) ; } else { this . stack = new Error ( message ) . stack ; } } toJSON ( ) { const jsonStructure = { message : this . message , statusCode : this . statusCode , errorCode : this . errorCode , name : this . name , stack : this . stack , } ; if ( this . originalError ) { jsonStructure . originalError = { name : this . originalError . name , message : this . originalError . message , stack : this . originalError . stack , } ; } return jsonStructure ; } }