code-auditor-mcp
Version:
Multi-language code quality auditor with MCP server - Analyze TypeScript, JavaScript, and Go code for SOLID principles, DRY violations, security patterns, and more
47 lines • 1.6 kB
JavaScript
/**
* Language Adapter Interface - Core abstraction for multi-language support
*
* This follows the architecture plan in /docs/MULTI-LANGUAGE-ARCHITECTURE.md
* Each language implements this interface to provide unified AST access.
*/
/**
* Language Registry - Manages all language adapters
*/
export class LanguageRegistry {
static instance;
adapters = new Map();
static getInstance() {
if (!LanguageRegistry.instance) {
LanguageRegistry.instance = new LanguageRegistry();
}
return LanguageRegistry.instance;
}
register(adapter) {
this.adapters.set(adapter.name, adapter);
console.log(`[LanguageRegistry] Registered adapter: ${adapter.name} for extensions: ${adapter.extensions.join(', ')}`);
}
getAdapter(language) {
return this.adapters.get(language) || null;
}
getAdapterForFile(filePath) {
const extension = this.getFileExtension(filePath);
for (const adapter of this.adapters.values()) {
if (adapter.extensions.includes(extension)) {
return adapter;
}
}
return null;
}
getSupportedExtensions() {
const extensions = new Set();
for (const adapter of this.adapters.values()) {
adapter.extensions.forEach(ext => extensions.add(ext));
}
return Array.from(extensions);
}
getFileExtension(filePath) {
const lastDot = filePath.lastIndexOf('.');
return lastDot === -1 ? '' : filePath.substring(lastDot);
}
}
//# sourceMappingURL=LanguageAdapter.js.map