index.ts•1.05 kB
#!/usr/bin/env node
import { TelegramMCPServer } from './server.js';
import { logger } from './utils/logger.js';
async function main() {
const server = new TelegramMCPServer();
// Handle shutdown gracefully
process.on('SIGINT', async () => {
logger.info('Received SIGINT, shutting down...');
await server.shutdown();
process.exit(0);
});
process.on('SIGTERM', async () => {
logger.info('Received SIGTERM, shutting down...');
await server.shutdown();
process.exit(0);
});
// Handle uncaught errors
process.on('uncaughtException', (error) => {
logger.error('Uncaught exception:', error);
process.exit(1);
});
process.on('unhandledRejection', (reason, promise) => {
logger.error('Unhandled rejection at:', promise, 'reason:', reason);
process.exit(1);
});
try {
await server.run();
} catch (error) {
logger.error('Failed to start server:', error);
process.exit(1);
}
}
main().catch((error) => {
logger.error('Fatal error:', error);
process.exit(1);
});