"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const express_1 = __importDefault(require("express")); const cors_1 = __importDefault(require("cors")); const task_routes_1 = __importDefault(require("./routes/task.routes")); const rateLimit_middleware_1 = require("./middleware/rateLimit.middleware"); // Create Express application const app = (0, express_1.default)(); // Middleware app.use((0, cors_1.default)()); app.use(express_1.default.json()); app.use(express_1.default.urlencoded({ extended: true })); // Apply general rate limiting to all routes app.use(rateLimit_middleware_1.generalLimiter); // Health check endpoint app.get('/health', (_req, res) => { res.json({ success: true, message: 'API is running', timestamp: new Date().toISOString() }); }); // API Routes app.use('/api/tasks', task_routes_1.default); // 404 handler app.use((_req, res) => { res.status(404).json({ success: false, error: 'Route not found' }); }); // Global error handler app.use((err, _req, res, _next) => { console.error('Error:', err); res.status(err.status || 500).json({ success: false, error: err.message || 'Internal server error', ...(process.env.NODE_ENV === 'development' && { stack: err.stack }) }); }); exports.default = app; //# sourceMappingURL=app.js.map