create-arktos
Version:
🚀 A modern Node.js backend boilerplate with TypeScript, Express, JWT authentication, Prisma ORM, PostgreSQL, and Resend email service. Includes complete authentication flow, security middleware, and database management.
59 lines (52 loc) • 1.86 kB
text/typescript
export const ERROR_CODES = {
// Authentication errors
AUTH_INVALID_CREDENTIALS: 'AUTH_001',
AUTH_TOKEN_EXPIRED: 'AUTH_002',
AUTH_TOKEN_INVALID: 'AUTH_003',
AUTH_USER_NOT_FOUND: 'AUTH_004',
AUTH_EMAIL_NOT_VERIFIED: 'AUTH_005',
AUTH_ACCOUNT_DISABLED: 'AUTH_006',
AUTH_INSUFFICIENT_PERMISSIONS: 'AUTH_007',
AUTH_USER_EXISTS: 'AUTH_008',
AUTH_USERNAME_TAKEN: 'AUTH_009',
AUTH_INVALID_PASSWORD: 'AUTH_010',
AUTH_TOKEN_REQUIRED: 'AUTH_011',
AUTH_INVALID_TOKEN: 'AUTH_003', // Alias for AUTH_TOKEN_INVALID
AUTH_ACCOUNT_DEACTIVATED: 'AUTH_006', // Alias for AUTH_ACCOUNT_DISABLED
// Validation errors
VALIDATION_REQUIRED_FIELD: 'VAL_001',
VALIDATION_INVALID_FORMAT: 'VAL_002',
VALIDATION_INVALID_LENGTH: 'VAL_003',
VALIDATION_INVALID_TYPE: 'VAL_004',
VALIDATION_ERROR: 'VAL_005',
// Database errors
DB_CONNECTION_ERROR: 'DB_001',
DB_QUERY_ERROR: 'DB_002',
DB_CONSTRAINT_VIOLATION: 'DB_003',
DB_RECORD_NOT_FOUND: 'DB_004',
DB_DUPLICATE_ENTRY: 'DB_005',
DATABASE_CONNECTION: 'DB_001', // Alias
DATABASE_ERROR: 'DB_002', // Alias
DATABASE_CONSTRAINT: 'DB_003', // Alias
DATABASE_NOT_FOUND: 'DB_004', // Alias
DATABASE_CONFLICT: 'DB_005', // Alias
// File/Upload errors
FILE_TOO_LARGE: 'FILE_001',
FILE_INVALID_TYPE: 'FILE_002',
FILE_UPLOAD_FAILED: 'FILE_003',
FILE_NOT_FOUND: 'FILE_004',
// Rate limiting errors
RATE_LIMIT_EXCEEDED: 'RATE_001',
// Server errors
INTERNAL_SERVER_ERROR: 'SRV_001',
SERVICE_UNAVAILABLE: 'SRV_002',
EXTERNAL_SERVICE_ERROR: 'SRV_003',
INTERNAL_ERROR: 'SRV_001', // Alias
GENERIC_ERROR: 'SRV_004',
ROUTE_NOT_FOUND: 'SRV_005',
// Email service errors
EMAIL_SEND_FAILED: 'EMAIL_001',
EMAIL_TEMPLATE_NOT_FOUND: 'EMAIL_002',
EMAIL_INVALID_RECIPIENT: 'EMAIL_003',
} as const;
export type ErrorCode = typeof ERROR_CODES[keyof typeof ERROR_CODES];