directus-task-management/dist/api/app.js

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