The common package provides shared utilities and base classes that are used across the RealDWG-Web ecosystem. This package contains fundamental components for color management, event handling, logging, performance monitoring, and file loading operations.
npm install @mlightcad/commonThe common package provides shared utilities and base classes that are used across the RealDWG-Web ecosystem. This package contains fundamental components for color management, event handling, logging, performance monitoring, and file loading operations.
This package serves as the foundation for the RealDWG-Web project, providing essential utilities and base classes that mimic AutoCAD ObjectARX's AcCm (Common) classes. It includes color management, event dispatching, logging utilities, performance monitoring, and file loading capabilities.
- Color Management: Comprehensive color handling with support for AutoCAD color indices and RGB values
- Event System: Event dispatching and management for decoupled communication between components
- Logging: Structured logging utilities with different log levels
- Performance Monitoring: Tools for collecting and analyzing performance metrics
- File Loading: Asynchronous file loading with progress tracking and error handling
- Task Scheduling: Background task management and scheduling capabilities
``bash`
npm install @mlightcad/common
typescript
import { AcCmColor, AcCmColorUtil } from '@mlightcad/common';// Create a color from AutoCAD color index
const color = new AcCmColor(1); // Red
// Create a color from RGB values
const rgbColor = new AcCmColor(255, 0, 0);
// Convert between formats
const rgb = AcCmColorUtil.toRgb(color);
const index = AcCmColorUtil.toColorIndex(rgbColor);
`$3
`typescript
import { AcCmEventManager, AcCmEventDispatcher } from '@mlightcad/common';// Create an event dispatcher
const dispatcher = new AcCmEventDispatcher();
// Register an event listener
dispatcher.addEventListener('fileLoaded', (event) => {
console.log('File loaded:', event.data);
});
// Dispatch an event
dispatcher.dispatchEvent('fileLoaded', { fileName: 'drawing.dwg' });
`$3
`typescript
import { AcCmLogUtil } from '@mlightcad/common';// Configure logging
AcCmLogUtil.setLevel('info');
// Log messages
AcCmLogUtil.info('Application started');
AcCmLogUtil.warn('Deprecated feature used');
AcCmLogUtil.error('Failed to load file', error);
`$3
`typescript
import { AcCmFileLoader, AcCmLoadingManager } from '@mlightcad/common';// Create a file loader
const loader = new AcCmFileLoader();
// Load a file with progress tracking
loader.load('drawing.dwg', {
onProgress: (progress) => {
console.log(
Loading: ${progress}%);
},
onComplete: (data) => {
console.log('File loaded successfully');
},
onError: (error) => {
console.error('Failed to load file:', error);
}
});// Use loading manager for multiple files
const manager = new AcCmLoadingManager();
manager.addLoader(loader);
manager.start();
``- loglevel: For logging functionality
For detailed API documentation, visit the RealDWG-Web documentation.
This package is part of the RealDWG-Web monorepo. Please refer to the main project README for contribution guidelines.