my / src /index.js
understanding's picture
Upload 13 files
14960b8 verified
// src/index.js - Main Entry Point
require('dotenv').config(); // Ensure env variables are loaded first
const logger = require('./logger');
const { connectDB } = require('./database');
const { connectWhatsApp } = require('./connection');
/**
* Starts the application by connecting to the database
* and then establishing the WhatsApp connection.
*/
async function start() {
logger.info("===================================");
logger.info(" Starting WhatsApp Bot ");
logger.info("===================================");
try {
await connectDB();
await connectWhatsApp();
} catch (error) {
logger.fatal({ err: error }, "Critical error during application startup sequence.");
process.exit(1); // Exit if essential connections fail
}
}
// Execute startup sequence
start().catch(err => {
// This catch is unlikely to be hit if errors in start() are handled
// but provides a final safety net.
logger.fatal({ err: err }, "FATAL UNHANDLED ERROR during startup!");
process.exit(1);
});
// Optional: Graceful shutdown handling
process.on('SIGINT', () => {
logger.warn("Received SIGINT. Shutting down gracefully...");
// Add cleanup logic here if needed (e.g., close DB connection)
process.exit(0);
});
process.on('SIGTERM', () => {
logger.warn("Received SIGTERM. Shutting down gracefully...");
// Add cleanup logic here
process.exit(0);
});