Build & Deploy / build-and-push (backend) (push) Failing after 35s
Build & Deploy / build-and-push (discord-gateway) (push) Failing after 25s
Build & Deploy / build-and-push (proxy) (push) Failing after 25s
- Remove pnpm workspace, moon repo, and all monorepo tooling - Delete packages/shared/, embed shared code directly into each service - Copy packages/shared/src/* -> services/backend/src/shared/ and services/discord-gateway/src/shared/ - Replace all @bete/shared imports with @/shared/ path alias - Remove @bete/shared workspace dependency from both services - Update root package.json scripts from --filter to --prefix - Rewrite Dockerfiles to build each service standalone - Clean up biome.json, .gitignore, remove root drizzle.config.ts
49 lines
1.2 KiB
TypeScript
49 lines
1.2 KiB
TypeScript
// Custom error classes for all services
|
|
|
|
export class AppError extends Error {
|
|
constructor(
|
|
message: string,
|
|
public code: string,
|
|
public statusCode: number = 500,
|
|
public details?: Record<string, unknown>,
|
|
) {
|
|
super(message);
|
|
this.name = "AppError";
|
|
}
|
|
}
|
|
|
|
export class ValidationError extends AppError {
|
|
constructor(message: string, details?: Record<string, unknown>) {
|
|
super(message, "VALIDATION_ERROR", 400, details);
|
|
this.name = "ValidationError";
|
|
}
|
|
}
|
|
|
|
export class NotFoundError extends AppError {
|
|
constructor(resource: string, id?: string) {
|
|
super(`${resource} not found${id ? `: ${id}` : ""}`, "NOT_FOUND", 404);
|
|
this.name = "NotFoundError";
|
|
}
|
|
}
|
|
|
|
export class UnauthorizedError extends AppError {
|
|
constructor(message = "Unauthorized") {
|
|
super(message, "UNAUTHORIZED", 401);
|
|
this.name = "UnauthorizedError";
|
|
}
|
|
}
|
|
|
|
export class DatabaseError extends AppError {
|
|
constructor(message: string, details?: Record<string, unknown>) {
|
|
super(message, "DATABASE_ERROR", 500, details);
|
|
this.name = "DatabaseError";
|
|
}
|
|
}
|
|
|
|
export class ConfigError extends AppError {
|
|
constructor(message: string) {
|
|
super(message, "CONFIG_ERROR", 500);
|
|
this.name = "ConfigError";
|
|
}
|
|
}
|