UNPKG

cube-ms

Version:

Production-ready microservice framework with health monitoring, validation, error handling, and Docker Swarm support

47 lines (39 loc) 1.41 kB
import { CreateService } from 'cube-ms'; import { setupRoutes } from './routes/index.js'; import { config } from './config/app.config.js'; // Load environment variables import 'dotenv/config'; // Create the microservice const service = CreateService({ port: config.server.port, appName: config.app.name, serviceName: config.app.serviceName, containerName: config.app.containerName, // Production features enableSecurity: config.security.enabled, securityLevel: config.security.level, enableRateLimit: config.rateLimit.enabled, rateLimitPreset: config.rateLimit.preset, enablePerformanceMonitoring: config.monitoring.performance, enableHealthCheck: config.monitoring.healthCheck, requestTimeoutMs: config.server.timeout, // Database configuration database: { url: config.database.url, config: { description: 'Main application database', ...config.database.options } } }); // Setup routes setupRoutes(service); // Global error handling for unhandled promises process.on('unhandledRejection', (reason, promise) => { service.logger.error('Unhandled Rejection at Promise', { reason, promise }); }); process.on('uncaughtException', (error) => { service.logger.error('Uncaught Exception thrown', { error: error.message, stack: error.stack }); process.exit(1); }); console.log(`🚀 ${config.app.name} is running on port ${config.server.port}`);