UNPKG

sicua

Version:

A tool for analyzing project structure and dependencies

95 lines (94 loc) 4.31 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProgressTracker = exports.ConfigManager = exports.ProjectAnalyzer = void 0; exports.analyzeProject = analyzeProject; const projectAnalyzer_1 = require("./core/projectAnalyzer"); Object.defineProperty(exports, "ProjectAnalyzer", { enumerable: true, get: function () { return projectAnalyzer_1.ProjectAnalyzer; } }); const configManager_1 = require("./core/configManager"); Object.defineProperty(exports, "ConfigManager", { enumerable: true, get: function () { return configManager_1.ConfigManager; } }); const progressTracker_1 = require("./core/progressTracker"); Object.defineProperty(exports, "ProgressTracker", { enumerable: true, get: function () { return progressTracker_1.ProgressTracker; } }); const fs = __importStar(require("fs/promises")); const path_1 = __importDefault(require("path")); /** * Analyzes a React project and generates a comprehensive analysis report * * @param options Analysis configuration options or path to project * @returns Promise that resolves when analysis is complete */ async function analyzeProject(options) { // Handle the case where only a string path is provided const config = typeof options === "string" ? { projectPath: options } : options; // Normalize project path const projectPath = path_1.default.resolve(config.projectPath); try { // Check if the project path exists await fs.access(projectPath); } catch (error) { throw new Error(`Project path ${projectPath} does not exist or is not accessible`); } // Create the project analyzer const analyzer = new projectAnalyzer_1.ProjectAnalyzer(projectPath); // Configure the analyzer with options if provided if (config.outputFileName || config.srcDir || config.rootComponentNames || config.fileExtensions) { // Get the config manager and apply options const configManager = analyzer.config; // Wait for the config to load first to get proper default values await configManager.loadConfig(); // Apply CLI options to override config file settings if (config.outputFileName) { configManager.outputFileName = path_1.default.resolve(projectPath, config.outputFileName); } if (config.srcDir) { configManager.srcDir = path_1.default.resolve(projectPath, config.srcDir); } if (config.rootComponentNames) { configManager.rootComponentNames = config.rootComponentNames; } if (config.fileExtensions) { configManager.fileExtensions = config.fileExtensions; } } // Enable verbose logging if requested if (config.verbose) { // Simple wrapper that adds timestamps to all console logs const originalConsoleLog = console.log; console.log = function (...args) { originalConsoleLog(`[sicua] [${new Date().toISOString()}]`, ...args); }; } // Run the analysis await analyzer.analyze(); } // Default export for CommonJS compatibility exports.default = analyzeProject;