Files
platform/src/servers/custom-errors.ts
T
2026-02-16 19:34:35 +00:00

70 lines
2.0 KiB
TypeScript

import type { ContentfulStatusCode } from 'hono/utils/http-status';
export class CustomError extends Error {
constructor(
public statusCode: ContentfulStatusCode,
message?: string,
public returnValue?: any,
) {
super(message);
}
}
export function createError(statusCode: ContentfulStatusCode, message: string, returnValue?: any) {
return new CustomError(statusCode, message, returnValue);
}
export function BAD_REQUEST(message?: string) {
return new CustomError(400, message || 'Bad Request');
}
export function UNAUTHORIZED(message?: string) {
return new CustomError(401, message || 'Unauthorized');
}
export function BAD_CREDENTIALS(message?: string) {
return new CustomError(401, message || 'Bad Credentials');
}
export function FORBIDDEN(message?: string) {
return new CustomError(403, message || 'Forbidden');
}
export function NOT_FOUND(message?: string) {
return new CustomError(404, message || 'Not Found');
}
export function METHOD_NOT_ALLOWED(message?: string) {
return new CustomError(405, message || 'Method Not Allowed');
}
export function CONFLICT(message?: string) {
return new CustomError(409, message || 'Conflict');
}
export function GONE(message?: string) {
return new CustomError(410, message || 'Gone');
}
export function INTERNAL_SERVER_ERROR(message?: string, returnValue?: any) {
return new CustomError(500, message || 'Internal Server Error', returnValue);
}
export function USER_ALREADY_EXISTS(message?: string) {
return new CustomError(409, message || 'This email address already exists');
}
export function AUDIENCE_ERROR(message?: string) {
return new CustomError(400, message || 'Failed to create audience in Google Analytics');
}
export const NO_START_EXPERIMENTS = () =>
new CustomError(
405,
"Starting Experiments is temporarily paused. Sorry for the Inconvenience. We will send you an email as soon as it's up again",
);
export function TOO_MANY_REQUESTS(message?: string, retryAfter?: number) {
return new CustomError(429, message || 'Too many requests', { retryAfter });
}