45 lines
1.5 KiB
JavaScript
45 lines
1.5 KiB
JavaScript
"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
|