@apolitical/server
Version:
Node.js module to encapsulate Apolitical's express server setup
53 lines (44 loc) • 1.13 kB
JavaScript
;
module.exports = ({ httpStatusCodes }) => {
const { BAD_REQUEST, FORBIDDEN, INTERNAL_SERVER_ERROR, NOT_FOUND, TOO_MANY_REQUESTS } = httpStatusCodes;
class GeneralError extends Error {
constructor(message, code, errors = []) {
super(message);
this.code = code;
this.errors = errors;
}
}
class BadRequest extends GeneralError {
constructor(message, errors) {
super(message, BAD_REQUEST, errors);
}
}
class InternalError extends GeneralError {
constructor(message, errors) {
super(message, INTERNAL_SERVER_ERROR, errors);
}
}
class Forbidden extends GeneralError {
constructor(message, errors) {
super(message, FORBIDDEN, errors);
}
}
class NotFound extends GeneralError {
constructor(message, errors) {
super(message, NOT_FOUND, errors);
}
}
class TooManyRequests extends GeneralError {
constructor(message, errors) {
super(message, TOO_MANY_REQUESTS, errors);
}
}
return {
BadRequest,
GeneralError,
InternalError,
Forbidden,
NotFound,
TooManyRequests,
};
};