Spaces:
Build error
Build error
| import { NextRequest, NextResponse } from 'next/server'; | |
| declare global { | |
| var viteErrors: any[]; | |
| } | |
| // Initialize global viteErrors array if it doesn't exist | |
| if (!global.viteErrors) { | |
| global.viteErrors = []; | |
| } | |
| export async function POST(request: NextRequest) { | |
| try { | |
| const { error, file, type = 'runtime-error' } = await request.json(); | |
| if (!error) { | |
| return NextResponse.json({ | |
| success: false, | |
| error: 'Error message is required' | |
| }, { status: 400 }); | |
| } | |
| // Parse the error to extract useful information | |
| const errorObj: any = { | |
| type, | |
| message: error, | |
| file: file || 'unknown', | |
| timestamp: new Date().toISOString() | |
| }; | |
| // Extract import information if it's an import error | |
| const importMatch = error.match(/Failed to resolve import ['"]([^'"]+)['"] from ['"]([^'"]+)['"]/); | |
| if (importMatch) { | |
| errorObj.type = 'import-error'; | |
| errorObj.import = importMatch[1]; | |
| errorObj.file = importMatch[2]; | |
| } | |
| // Add to global errors array | |
| global.viteErrors.push(errorObj); | |
| // Keep only last 50 errors | |
| if (global.viteErrors.length > 50) { | |
| global.viteErrors = global.viteErrors.slice(-50); | |
| } | |
| console.log('[report-vite-error] Error reported:', errorObj); | |
| return NextResponse.json({ | |
| success: true, | |
| message: 'Error reported successfully', | |
| error: errorObj | |
| }); | |
| } catch (error) { | |
| console.error('[report-vite-error] Error:', error); | |
| return NextResponse.json({ | |
| success: false, | |
| error: (error as Error).message | |
| }, { status: 500 }); | |
| } | |
| } |