UNPKG

@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
"use strict"; 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;