/
dupleymi-amp
/
sql-trainer
Обзор
Документация
Войти
/
dupleymi-amp
/
sql-trainer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/lib/api-error.ts
39 строк
1 KB
Maxim Dupley
Replace next-themes with custom ThemeProvider to fix React 19 script warning
13 июл 2026, 14:54
13 июл 2026, 14:54
eca4752
Код
Авторство
О чём код?
import { NextResponse } from 'next/server'; import { logger } from './logger'; export interface ApiErrorResponse { success: false; error: string; correlationId: string; details?: string; } export function generateCorrelationId(): string { return crypto.randomUUID().slice(0, 8); } /** * Format an error message for API responses. * Avoids leaking internal details in production. */ function formatErrorMessage(context: string, error: unknown, isDev: boolean): string { if (!isDev) return 'An unexpected error occurred'; const message = error instanceof Error ? error.message : String(error); return `[${context}] ${message}`; } export function apiServerError( context: string, correlationId?: string, error?: unknown, ): NextResponse<ApiErrorResponse> { const id = correlationId || generateCorrelationId(); const isDev = process.env.NODE_ENV === 'development'; const message = formatErrorMessage(context, error, isDev); logger.error(`[${id}] ${context} failed`, error); return NextResponse.json( { success: false, error: 'Internal server error', correlationId: id, details: isDev ? message : undefined }, { status: 500 }, ); }