Files
MineGeo/lib/service-error.ts
pavel444-byte 0bd05d6e0b
Some checks failed
Deploy MineGeo to Dokploy / deploy (push) Failing after 6m4s
Validate and deduplicate custom difficulty presets
2026-10-16 13:29:32 +05:00

35 lines
995 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
export class ServiceError extends Error {
constructor(
message: string,
public readonly status = 503,
) {
super(message);
}
}
export function checkDifficultyPresetError(
error: { message: string; code?: string } | null,
) {
if (error?.code === "23505")
throw new ServiceError("A difficulty with that name already exists", 409);
if (error?.code === "23514")
throw new ServiceError(
"Use a name with 2–40 characters and a round time of 15–600 seconds in 15-second steps",
400,
);
checkServiceError(error);
}
export function checkServiceError(
error: { message: string; code?: string } | null,
) {
if (!error) return;
if (error.code === "P0001") throw new Error(error.message);
if (error.code === "PGRST116")
throw new ServiceError("Record not found", 404);
console.error("Supabase request failed:", error.code, error.message);
throw new ServiceError(
"MineGeo could not reach its data service. Please try again.",
);
}