@foxframework/core
Version:
A modern, production-ready web framework for TypeScript/Node.js with modular routing, integrated template engine, CLI tools, and enterprise features
43 lines (42 loc) • 1.99 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = require("express");
const user_controller_1 = require("../controllers/user.controller");
const health_check_1 = require("../../tsfox/core/health/health-check");
const performance_factory_1 = require("../../tsfox/core/performance/performance.factory");
const router = (0, express_1.Router)();
// Initialize health checker
const healthChecker = new health_check_1.HealthChecker('1.0.0', { service: 'fox-framework-demo' });
// Register default health checks
healthChecker.addCheck('memory', health_check_1.defaultHealthChecks.memory);
healthChecker.addCheck('uptime', health_check_1.defaultHealthChecks.uptime);
healthChecker.addCheck('cpu', health_check_1.defaultHealthChecks.cpu);
healthChecker.addCheck('disk', health_check_1.defaultHealthChecks.disk);
healthChecker.addCheck('environment', health_check_1.defaultHealthChecks.environment);
// Create health check middleware
const healthMiddleware = (0, health_check_1.createHealthCheckMiddleware)(healthChecker);
// Health check routes
router.get('/health', healthMiddleware.full);
router.get('/health/ready', healthMiddleware.ready);
router.get('/health/live', healthMiddleware.live);
// Initialize metrics collector from performance factory
const performance = performance_factory_1.PerformanceFactory.getInstance();
// Metrics endpoint
router.get('/metrics', async (req, res) => {
try {
const metricsCollector = performance.getMetricsCollector();
const metrics = metricsCollector.getPrometheusFormat();
res.setHeader('Content-Type', 'text/plain; version=0.0.4; charset=utf-8');
res.send(metrics);
}
catch (error) {
res.status(500).json({
error: 'Failed to retrieve metrics',
timestamp: new Date().toISOString()
});
}
});
// User routes
router.use('/user', new user_controller_1.UserController().router);
// Add your routes here
exports.default = router;
;