@neylion/exceptions
Version:
Exceptions commonly used within ney projects
32 lines (31 loc) • 1.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
class ResponseFriendlyException {
constructor(exception) {
this.message = exception.message;
this.statusCode = exception.statusCode;
this.errorCode = exception.errorCode;
this.type = exception.type;
this.typeDescription = exception.typeDescription;
this.innerException = getInnerException(exception.innerException);
}
}
function getInnerException(innerException) {
let responseFriendlyInnerError;
if (!innerException)
return responseFriendlyInnerError;
if (innerException.isApplicationError) {
responseFriendlyInnerError = new ResponseFriendlyException(innerException);
}
else {
// Making a shallow copy to avoid deleting properties from original error.
responseFriendlyInnerError = Object.assign({}, innerException);
delete responseFriendlyInnerError.stack;
delete responseFriendlyInnerError.config;
}
return responseFriendlyInnerError;
}
function getResponseFriendlyException(exception) {
return new ResponseFriendlyException(exception);
}
exports.getResponseFriendlyException = getResponseFriendlyException;