UNPKG

@paulohenriquevn/m2js

Version:

Transform TypeScript/JavaScript code into LLM-friendly Markdown summaries + Smart Dead Code Detection + Graph-Deep Diff Analysis. Extract exported functions, classes, and JSDoc comments for better AI context with 60%+ token reduction. Intelligent dead cod

82 lines (81 loc) 2.2 kB
/** * Configuration Loader for M2JS * Loads settings from .m2jsrc files and environment variables */ import { PerformanceOptions } from './performance-optimizer'; /** * M2JS Configuration interface */ export interface M2JSConfig { deadCode: { enableCache: boolean; maxCacheSize: number; chunkSize: number; showProgress: boolean; format: 'table' | 'json'; includeMetrics: boolean; includeSuggestions: boolean; }; duplicateCode: { minLines: number; minTokens: number; ignorePatterns: string[]; includeContext: boolean; includeSuggestions: boolean; format: 'table' | 'json'; }; extraction: { includeComments: boolean; includeUsageExamples: boolean; includeBusinessContext: boolean; includeArchitectureInsights: boolean; includeSemanticAnalysis: boolean; }; files: { extensions: string[]; ignorePatterns: string[]; maxFileSize: number; }; output: { format: 'markdown' | 'json'; preserveStructure: boolean; }; } /** * Configuration loader class */ export declare class ConfigLoader { private static configCache; /** * Load configuration from multiple sources with precedence: * 1. Environment variables (highest priority) * 2. .m2jsrc in current directory * 3. .m2jsrc in home directory * 4. Default configuration (lowest priority) */ static loadConfig(projectPath?: string): M2JSConfig; /** * Load configuration from a specific file */ private static loadConfigFile; /** * Deep merge two configuration objects */ private static mergeConfigs; /** * Apply environment variable overrides */ private static applyEnvironmentOverrides; /** * Convert config to performance options */ static toPerformanceOptions(config: M2JSConfig): PerformanceOptions; /** * Clear cached configuration (useful for testing) */ static clearCache(): void; /** * Generate example configuration file content */ static generateExampleConfig(): string; }