/ src / hooks.server.js
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  }