@ordojs/dev-tools
Version:
Advanced developer tools for OrdoJS with component inspector, AST explorer, and performance profiling
1 lines • 13.8 kB
Source Map (JSON)
{"version":3,"sources":["../../src/development-server/index.ts"],"names":[],"mappings":"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","file":"index.mjs","sourcesContent":["/**\n * @fileoverview OrdoJS Dev Tools - Development Server\n *\n * Enhanced development server with all dev tools integration.\n */\n\nimport { EventEmitter } from 'events';\nimport type { DevServerConfig } from '../types/index.js';\n\n/**\n * Enhanced development server with dev tools integration\n */\nexport class DevelopmentServer extends EventEmitter {\n private config: DevServerConfig;\n private isRunning: boolean;\n private server: any; // Express server instance\n\n /**\n * Create a new DevelopmentServer instance\n *\n * @param config - Development server configuration\n */\n constructor(config: DevServerConfig) {\n super();\n\n this.config = config;\n this.isRunning = false;\n this.server = null;\n }\n\n /**\n * Start the development server\n */\n async start(): Promise<void> {\n if (this.isRunning) {\n console.warn('Development server is already running');\n return;\n }\n\n try {\n // Initialize Express server\n await this.initializeServer();\n\n // Start the server\n await this.startServer();\n\n this.isRunning = true;\n console.log(`Development server started on http://${this.config.host}:${this.config.port}`);\n\n this.emit('started');\n } catch (error) {\n console.error('Failed to start development server:', error);\n this.emit('error', error);\n throw error;\n }\n }\n\n /**\n * Stop the development server\n */\n async stop(): Promise<void> {\n if (!this.isRunning) {\n console.warn('Development server is not running');\n return;\n }\n\n try {\n // Stop the server\n await this.stopServer();\n\n this.isRunning = false;\n console.log('Development server stopped');\n\n this.emit('stopped');\n } catch (error) {\n console.error('Failed to stop development server:', error);\n this.emit('error', error);\n throw error;\n }\n }\n\n /**\n * Get server status\n *\n * @returns Server status information\n */\n getStatus(): {\n isRunning: boolean;\n port: number;\n host: string;\n config: DevServerConfig;\n } {\n return {\n isRunning: this.isRunning,\n port: this.config.port,\n host: this.config.host,\n config: this.config\n };\n }\n\n /**\n * Update server configuration\n *\n * @param newConfig - New configuration\n */\n updateConfig(newConfig: Partial<DevServerConfig>): void {\n this.config = { ...this.config, ...newConfig };\n this.emit('configUpdated', this.config);\n }\n\n /**\n * Initialize Express server\n */\n private async initializeServer(): Promise<void> {\n try {\n const express = await import('express');\n const cors = await import('cors');\n const compression = await import('compression');\n const serveStatic = await import('serve-static');\n const morgan = await import('morgan');\n const helmet = await import('helmet');\n\n const app = express.default();\n\n // Security middleware\n if (this.config.cors) {\n app.use(cors.default());\n }\n\n if (this.config.compression) {\n app.use(compression.default());\n }\n\n app.use(helmet.default());\n\n // Logging middleware\n app.use(morgan.default('combined'));\n\n // Static file serving\n app.use(serveStatic.default(this.config.staticDir));\n\n // API routes for dev tools\n this.setupDevToolsRoutes(app);\n\n // Error handling middleware\n app.use(this.errorHandler.bind(this));\n\n this.server = app;\n } catch (error) {\n console.error('Failed to initialize Express server:', error);\n throw error;\n }\n }\n\n /**\n * Start the server\n */\n private async startServer(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.server) {\n reject(new Error('Server not initialized'));\n return;\n }\n\n const server = this.server.listen(this.config.port, this.config.host, () => {\n console.log(`Development server listening on http://${this.config.host}:${this.config.port}`);\n resolve();\n });\n\n server.on('error', (error: Error) => {\n console.error('Server error:', error);\n reject(error);\n });\n });\n }\n\n /**\n * Stop the server\n */\n private async stopServer(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.server) {\n resolve();\n return;\n }\n\n const server = this.server;\n server.close((error: Error | undefined) => {\n if (error) {\n console.error('Error stopping server:', error);\n reject(error);\n } else {\n console.log('Server stopped');\n resolve();\n }\n });\n });\n }\n\n /**\n * Setup dev tools API routes\n *\n * @param app - Express app instance\n */\n private setupDevToolsRoutes(app: any): void {\n // Health check endpoint\n app.get('/api/dev-tools/health', (req: any, res: any) => {\n res.json({\n status: 'healthy',\n timestamp: new Date().toISOString(),\n config: this.config\n });\n });\n\n // Component inspector endpoint\n app.get('/api/dev-tools/inspector', (req: any, res: any) => {\n res.json({\n components: [],\n stats: {\n totalComponents: 0,\n totalRenderCount: 0,\n averageRenderTime: 0,\n peakMemoryUsage: 0\n }\n });\n });\n\n // Performance profiler endpoint\n app.get('/api/dev-tools/profiler', (req: any, res: any) => {\n res.json({\n profiles: [],\n stats: {\n totalProfiles: 0,\n activeProfiles: 0,\n totalMeasurements: 0,\n averageProfileDuration: 0\n }\n });\n });\n\n // AST explorer endpoint\n app.get('/api/dev-tools/ast-explorer', (req: any, res: any) => {\n res.json({\n asts: [],\n stats: {\n totalASTs: 0,\n totalNodes: 0,\n averageDepth: 0\n }\n });\n });\n\n // Bundle analyzer endpoint\n app.get('/api/dev-tools/bundle-analyzer', (req: any, res: any) => {\n res.json({\n analyses: [],\n stats: {\n totalAnalyses: 0,\n totalSize: 0,\n averageSize: 0\n }\n });\n });\n\n // Error overlay endpoint\n app.get('/api/dev-tools/error-overlay', (req: any, res: any) => {\n res.json({\n errors: [],\n stats: {\n totalErrors: 0,\n errorsByType: {},\n errorsByFile: {}\n }\n });\n });\n\n // HMR endpoint\n app.get('/api/dev-tools/hmr', (req: any, res: any) => {\n res.json({\n updates: [],\n stats: {\n totalUpdates: 0,\n updatesByType: {},\n updatesByFile: {},\n averageUpdateTime: 0\n }\n });\n });\n }\n\n /**\n * Error handling middleware\n *\n * @param err - Error object\n * @param req - Request object\n * @param res - Response object\n * @param next - Next function\n */\n private errorHandler(err: Error, req: any, res: any, next: any): void {\n console.error('Server error:', err);\n\n res.status(500).json({\n error: {\n message: err.message,\n stack: process.env.NODE_ENV === 'development' ? err.stack : undefined\n }\n });\n }\n}\n"]}