41 lines
1.0 KiB
JavaScript
41 lines
1.0 KiB
JavaScript
import { Hono } from 'hono'
|
|
import { logger } from 'hono/logger'
|
|
import { cors } from 'hono/cors'
|
|
import { jwt } from 'hono/jwt'
|
|
|
|
// Importación de APIs (Rutas)
|
|
import auth from './api/auth'
|
|
import db from './api/db'
|
|
import mail from './api/mail'
|
|
import soap from './api/soap'
|
|
|
|
const app = new Hono()
|
|
|
|
// --- Middlewares Globales ---
|
|
app.use('*', logger())
|
|
app.use('*', cors())
|
|
|
|
// --- Gestión de Errores Global ---
|
|
app.onError((err, c) => {
|
|
console.error(`[Global Error]: ${err.message}`)
|
|
const status = err.name === 'JwtTokenInvalid' ? 401 : 500
|
|
return c.json({
|
|
success: false,
|
|
message: err.message || 'Internal Server Error'
|
|
}, status)
|
|
})
|
|
|
|
// --- Registro de Rutas ---
|
|
// Nota: La protección JWT ya la pusimos dentro de api/db.ts y api/soap.ts
|
|
// para permitir que auth y mail (quizás) sean públicos.
|
|
app.route('/api/auth', auth)
|
|
app.route('/api/db', db)
|
|
app.route('/api/mail', mail)
|
|
app.route('/api/soap', soap)
|
|
|
|
// --- Servidor Bun ---
|
|
export default {
|
|
port: 3000,
|
|
fetch: app.fetch,
|
|
idleTimeout: 120,
|
|
} |