SPB Git forge

spb/spinza

Public
8commits 1branches 0releases
1.6 MBsize
maindefault branch
16 days agolast push
TypeScript 97.6% SQL 1.4% JavaScript 0.5%
1.1 KB · 23 lines typescript
Raw Blame History
1export class ApiError extends Error {2  constructor(3    public status: number,4    public code: string,5    message: string,6    public details?: unknown,7  ) {8    super(message);9  }10}1112export const errors = {13  badRequest: (msg = "Bad request", details?: unknown) => new ApiError(400, "BAD_REQUEST", msg, details),14  unauthorized: (msg = "Please sign in.") => new ApiError(401, "UNAUTHORIZED", msg),15  forbidden: (msg = "Forbidden") => new ApiError(403, "FORBIDDEN", msg),16  notFound: (msg = "Not found") => new ApiError(404, "NOT_FOUND", msg),17  conflict: (code: string, msg: string) => new ApiError(409, code, msg),18  rateLimited: (retryAfter: number) => new ApiError(429, "RATE_LIMITED", "Too many requests. Please slow down.", { retryAfter }),19  insufficient: (balance: number, bet: number) => new ApiError(402, "INSUFFICIENT_CREDITS", "Not enough Spinza Credits for this bet.", { balance, bet }),20  maintenance: (message: string) => new ApiError(503, "MAINTENANCE", message),21  unavailable: (msg = "Game unavailable") => new ApiError(503, "GAME_UNAVAILABLE", msg),22};23