Perplexica/src/app.ts

57 lines
1.5 KiB
TypeScript
Raw Normal View History

2024-04-09 16:21:05 +05:30
import { startWebSocketServer } from './websocket';
import express from 'express';
import cors from 'cors';
import http from 'http';
import routes from './routes';
import { getPort } from './config';
2024-04-30 12:18:18 +05:30
import logger from './utils/logger';
2024-04-20 09:32:19 +05:30
const port = getPort();
2024-04-09 16:21:05 +05:30
const app = express();
const server = http.createServer(app);
const corsOptions = {
origin: '*',
};
2025-02-02 12:14:15 +02:00
logger.info(`🚀 Initializing Server Setup...`);
logger.info(`🛠 CORS Policy Applied: ${JSON.stringify(corsOptions)}`);
2024-04-09 16:21:05 +05:30
app.use(cors(corsOptions));
app.use(express.json());
2025-02-02 12:14:15 +02:00
// ✅ Middleware to log incoming requests
app.use((req, res, next) => {
logger.info(`📩 API Request - ${req.method} ${req.originalUrl}`);
next();
});
logger.info(`✅ API Routes Initialized`);
2024-04-09 16:21:05 +05:30
app.use('/api', routes);
app.get('/api', (_, res) => {
2025-02-02 12:14:15 +02:00
logger.info(`🟢 Health Check Endpoint Hit`);
2024-04-09 16:21:05 +05:30
res.status(200).json({ status: 'ok' });
});
2025-02-02 12:14:15 +02:00
// ✅ Log when the server starts listening
server.listen(port, () => {
2025-02-02 12:14:15 +02:00
logger.info(`✅ Server is running on port ${port}`);
2024-04-09 16:21:05 +05:30
});
2025-02-02 12:14:15 +02:00
// ✅ Log WebSocket Initialization
logger.info(`📡 Starting WebSocket Server...`);
2024-04-09 16:21:05 +05:30
startWebSocketServer(server);
2025-02-02 12:14:15 +02:00
// ✅ Better Logging for Uncaught Errors
process.on('uncaughtException', (err, origin) => {
2025-02-02 12:14:15 +02:00
logger.error(`🔥 Uncaught Exception at ${origin}: ${err.message}`);
logger.error(err.stack);
2024-07-31 20:17:57 +05:30
});
process.on('unhandledRejection', (reason, promise) => {
2025-02-02 12:14:15 +02:00
logger.error(`🚨 Unhandled Rejection at: ${promise}`);
logger.error(`💥 Reason: ${reason}`);
2024-07-31 20:17:57 +05:30
});