hooks.server.js
1 /** @type {import('@sveltejs/kit').Handle} */ 2 export async function handle({ event, resolve }) { 3 try { 4 const response = await resolve(event); 5 return response; 6 } catch (error) { 7 console.error('Server error:', error); 8 9 // Return a custom error page 10 return new Response(` 11 <!DOCTYPE html> 12 <html lang="es"> 13 <head> 14 <meta charset="UTF-8"> 15 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 16 <title>Error - YaCy UI</title> 17 <style> 18 body { 19 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; 20 background-color: #f8f9fa; 21 color: #333; 22 display: flex; 23 justify-content: center; 24 align-items: center; 25 height: 100vh; 26 margin: 0; 27 } 28 .container { 29 text-align: center; 30 background-color: white; 31 padding: 3rem; 32 border-radius: 8px; 33 box-shadow: 0 4px 16px rgba(0,0,0,0.1); 34 max-width: 80%; 35 } 36 h1 { color: #e63946; margin-bottom: 1rem; } 37 p { line-height: 1.6; margin: 1rem 0; } 38 .btn { 39 display: inline-block; 40 padding: 0.5rem 1.5rem; 41 background-color: #1d3557; 42 color: white; 43 text-decoration: none; 44 border-radius: 4px; 45 margin-top: 2rem; 46 transition: background-color 0.3s; 47 } 48 .btn:hover { background-color: #457b9d; } 49 </style> 50 </head> 51 <body> 52 <div class="container"> 53 <h1>Error en el servidor</h1> 54 <p>Lo sentimos, ha ocurrido un error mientras procesábamos tu solicitud.</p> 55 <p>Por favor, intenta nuevamente o comunícate con soporte si el problema persiste.</p> 56 <a href="/" class="btn">Volver al inicio</a> 57 </div> 58 </body> 59 </html> 60 `, { 61 status: 500, 62 headers: { 63 'content-type': 'text/html' 64 } 65 }); 66 } 67 } 68 69 /** @type {import('@sveltejs/kit').HandleServerError} */ 70 export function handleError({ error, event }) { 71 console.error('Server error:', error); 72 73 // Log the error with additional context 74 const errorMessage = error instanceof Error ? error.message : 'Unknown error'; 75 76 console.error(`Error en ${event.url.pathname}:`, errorMessage); 77 78 return { 79 message: "Se ha producido un error en el servidor. Por favor, intenta más tarde.", 80 code: 'ERROR_SERVIDOR' 81 }; 82 }