-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy patherror.js
33 lines (27 loc) · 1.03 KB
/
error.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Define a function to create custom errors
const createError = (name, message, status = null, cause = null, request = null) => {
const error = new Error(message);
error.name = name;
error.status = status;
error.cause = cause;
error.request = request;
return error;
};
// Create specific error types using the factory function
const ValidationError = (message) => createError('ValidationError', message);
const PermissionError = (message, status, cause, request) =>
createError('PermissionError', message, status, cause, request);
const HttpError = (message, status, cause, request) =>
createError('HttpError', message, status, cause, request);
const RateLimitError = (message, status, cause, request) =>
createError('RateLimitError', message, status, cause, request);
const ServiceError = (message, status, cause, request) =>
createError('ServiceError', message, status, cause, request);
// Export the custom error creators
export {
ValidationError,
PermissionError,
HttpError,
RateLimitError,
ServiceError,
};