@rnaga/wp-node
Version:
👉 **[View Full Documentation at rnaga.github.io/wp-node →](https://rnaga.github.io/wp-node/)**
45 lines (44 loc) • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.CrudError = exports.StatusCodeMapper = exports.StatusMessage = void 0;
var StatusMessage;
(function (StatusMessage) {
StatusMessage["BAD_REQUEST"] = "BAD_REQUEST";
StatusMessage["UNAUTHORIZED"] = "UNAUTHORIZED";
StatusMessage["NOT_FOUND"] = "NOT_FOUND";
StatusMessage["INTERNAL_SERVER_ERROR"] = "INTERNAL_SERVER_ERROR";
})(StatusMessage || (exports.StatusMessage = StatusMessage = {}));
class StatusCodeMapper {
static statusMap = {
[StatusMessage.BAD_REQUEST]: 400,
[StatusMessage.UNAUTHORIZED]: 401,
[StatusMessage.NOT_FOUND]: 404,
[StatusMessage.INTERNAL_SERVER_ERROR]: 500,
};
static reverseStatusMap = Object.fromEntries(Object.entries(StatusCodeMapper.statusMap).map(([key, value]) => [
value,
key,
]));
static getCode(message) {
return this.statusMap[message] || 500; // Default to 500 if not found
}
static getMessage(statusCode) {
return (this.reverseStatusMap[statusCode] ?? StatusMessage.INTERNAL_SERVER_ERROR);
}
}
exports.StatusCodeMapper = StatusCodeMapper;
class CustomError extends Error {
statusCode;
constructor(message, statusMessage) {
super(message);
this.statusCode = StatusCodeMapper.getCode(statusMessage);
Error.captureStackTrace(this, this.constructor);
}
}
class CrudError extends CustomError {
constructor(statusMessage = StatusMessage.INTERNAL_SERVER_ERROR, detail) {
super(`Error: ${detail}`, statusMessage);
Object.setPrototypeOf(this, CrudError.prototype);
}
}
exports.CrudError = CrudError;