UNPKG

revit-cli

Version:

A scalable CLI tool for Revit communication and data manipulation

92 lines 3.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.initializeCLI = initializeCLI; exports.setupErrorHandlers = setupErrorHandlers; const logger_1 = require("../utils/logger"); const config_manager_1 = require("../core/config-manager"); const plugin_manager_1 = require("../core/plugin-manager"); const revit_connector_1 = require("../core/revit-connector"); /** * Initialize all core CLI components */ async function initializeCLI() { // Start with debug logging for initialization const logger = new logger_1.Logger('debug'); try { logger.debug('=== CLI INITIALIZATION START ==='); logger.debug('Starting CLI component initialization...'); // Initialize configuration logger.debug('Initializing ConfigManager...'); const configManager = new config_manager_1.ConfigManager(); await configManager.initialize(); logger.debug('ConfigManager initialized successfully'); // Initialize logger with config const config = configManager.getConfig(); logger.debug('Configuration loaded:', config); if (config.logging?.level) { logger.debug(`Setting log level to: ${config.logging.level}`); logger.setLevel(config.logging.level); } else { logger.debug('No log level in config, keeping debug level for troubleshooting'); logger.setLevel('debug'); // Force debug for troubleshooting } if (config.logging?.file) { logger.debug(`Setting log file to: ${config.logging.file}`); await logger.setLogFile(config.logging.file); } // Initialize Revit connector logger.debug('Initializing RevitConnector...'); const revitConnector = new revit_connector_1.RevitConnector(); await revitConnector.initialize(configManager); logger.debug('RevitConnector initialized successfully'); // Initialize plugin manager logger.debug('Initializing PluginManager...'); const pluginManager = new plugin_manager_1.PluginManager(); await pluginManager.initialize(); logger.debug('PluginManager initialized successfully'); // Create tool context logger.debug('Creating ToolContext...'); const toolContext = { logger, configManager, revitConnector, pluginManager }; logger.debug('ToolContext created successfully'); const cliState = { logger, configManager, pluginManager, revitConnector, toolContext }; logger.debug('=== CLI INITIALIZATION COMPLETE ==='); logger.debug('All CLI components initialized successfully'); return cliState; } catch (error) { logger.error('=== CLI INITIALIZATION FAILED ==='); logger.error('Failed to initialize CLI:', { message: error instanceof Error ? error.message : String(error), stack: error instanceof Error ? error.stack : undefined }); process.exit(1); } } /** * Setup error handlers for the CLI */ function setupErrorHandlers(logger) { // Handle unhandled rejections process.on('unhandledRejection', (reason, promise) => { logger.error('Unhandled Rejection at:', promise, 'reason:', reason); process.exit(1); }); // Handle uncaught exceptions process.on('uncaughtException', (error) => { logger.error('Uncaught Exception:', error); process.exit(1); }); } //# sourceMappingURL=initializer.js.map