Files
betterhuman/backend/dist/index.js
T

79 lines
3.4 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
require("./instrumentation");
const express_1 = __importDefault(require("express"));
const cors_1 = __importDefault(require("cors"));
const helmet_1 = __importDefault(require("helmet"));
const cookie_parser_1 = __importDefault(require("cookie-parser"));
const express_rate_limit_1 = __importDefault(require("express-rate-limit"));
const path_1 = __importDefault(require("path"));
const auth_1 = __importDefault(require("./routes/auth"));
const employees_1 = __importDefault(require("./routes/employees"));
const departments_1 = __importDefault(require("./routes/departments"));
const positions_1 = __importDefault(require("./routes/positions"));
const locations_1 = __importDefault(require("./routes/locations"));
const leave_1 = __importDefault(require("./routes/leave"));
const attendance_1 = __importDefault(require("./routes/attendance"));
const payroll_1 = __importDefault(require("./routes/payroll"));
const recruitment_1 = __importDefault(require("./routes/recruitment"));
const performance_1 = __importDefault(require("./routes/performance"));
const engagement_1 = __importDefault(require("./routes/engagement"));
const analytics_1 = __importDefault(require("./routes/analytics"));
const settings_1 = __importDefault(require("./routes/settings"));
const notifications_1 = __importDefault(require("./routes/notifications"));
const app = (0, express_1.default)();
const PORT = process.env.PORT || 5000;
// Security
app.use((0, helmet_1.default)({ contentSecurityPolicy: false }));
// CORS
app.use((0, cors_1.default)({
origin: [
'http://localhost:3000',
'http://localhost:5000',
'http://localhost:5173',
process.env.FRONTEND_URL || 'http://localhost:3000',
],
credentials: true,
}));
// Middleware
app.use(express_1.default.json({ limit: '10mb' }));
app.use((0, cookie_parser_1.default)());
// Rate limiting for auth
const authLimiter = (0, express_rate_limit_1.default)({
windowMs: 15 * 60 * 1000,
max: 20,
message: { error: 'Too many requests' },
});
// Health check
app.get('/health', (req, res) => {
res.json({ status: 'ok', timestamp: new Date().toISOString() });
});
// API Routes
app.use('/api/v1/auth', authLimiter, auth_1.default);
app.use('/api/v1/employees', employees_1.default);
app.use('/api/v1/departments', departments_1.default);
app.use('/api/v1/positions', positions_1.default);
app.use('/api/v1/locations', locations_1.default);
app.use('/api/v1/leave', leave_1.default);
app.use('/api/v1/attendance', attendance_1.default);
app.use('/api/v1/payroll', payroll_1.default);
app.use('/api/v1/recruitment', recruitment_1.default);
app.use('/api/v1/performance', performance_1.default);
app.use('/api/v1/engagement', engagement_1.default);
app.use('/api/v1/analytics', analytics_1.default);
app.use('/api/v1/settings', settings_1.default);
app.use('/api/v1/notifications', notifications_1.default);
// Serve frontend in production
const frontendDist = path_1.default.join(__dirname, '../../public');
app.use(express_1.default.static(frontendDist));
app.get('*', (req, res) => {
res.sendFile(path_1.default.join(frontendDist, 'index.html'));
});
app.listen(PORT, () => {
console.log(`BetterHuman API running on port ${PORT}`);
});
exports.default = app;
//# sourceMappingURL=index.js.map