Files
joplin-cli-gateway/src/domain/errors.ts
T
2026-08-19 17:18:45 +01:00

24 lines
947 B
TypeScript

export class GatewayError extends Error {
public constructor(
public readonly statusCode: number,
public readonly code: string,
message: string,
public readonly details: Record<string, unknown> = {},
) {
super(message);
this.name = 'GatewayError';
}
}
export const badRequest = (code: string, message: string, details: Record<string, unknown> = {}) =>
new GatewayError(400, code, message, details);
export const forbidden = (code: string, message: string) => new GatewayError(403, code, message);
export const notFound = (code: string, message: string) => new GatewayError(404, code, message);
export const conflict = (code: string, message: string) => new GatewayError(409, code, message);
export const unprocessable = (code: string, message: string) => new GatewayError(422, code, message);
export function asError(value: unknown): Error {
return value instanceof Error ? value : new Error(String(value));
}