@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
TypeScript
/**
* 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;
}