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
77 lines • 2.96 kB
JavaScript
/**
* Configuration Generator Factory
* Creates appropriate config generators for each AI tool
*/
import { DEFAULT_SERVER_URL } from '../constants.js';
import { CursorConfigGenerator } from './CursorConfigGenerator.js';
import { ContinueConfigGenerator } from './ContinueConfigGenerator.js';
import { CopilotConfigGenerator } from './CopilotConfigGenerator.js';
import { ClaudeConfigGenerator } from './ClaudeConfigGenerator.js';
import { AWSQConfigGenerator } from './AWSQConfigGenerator.js';
import { CodeiumConfigGenerator } from './CodeiumConfigGenerator.js';
import { VSCodeConfigGenerator } from './VSCodeConfigGenerator.js';
import { JetBrainsConfigGenerator } from './JetBrainsConfigGenerator.js';
import { ClineConfigGenerator } from './ClineConfigGenerator.js';
import { AiderConfigGenerator } from './AiderConfigGenerator.js';
export class ConfigGeneratorFactory {
generators;
serverUrl;
constructor(serverUrl = DEFAULT_SERVER_URL) {
this.serverUrl = serverUrl;
this.generators = new Map([
['cursor', () => new CursorConfigGenerator(this.serverUrl)],
['continue', () => new ContinueConfigGenerator(this.serverUrl)],
['copilot', () => new CopilotConfigGenerator(this.serverUrl)],
['claude', () => new ClaudeConfigGenerator(this.serverUrl)],
['awsq', () => new AWSQConfigGenerator(this.serverUrl)],
['codeium', () => new CodeiumConfigGenerator(this.serverUrl)],
['vscode', () => new VSCodeConfigGenerator(this.serverUrl)],
['jetbrains', () => new JetBrainsConfigGenerator(this.serverUrl)],
['cline', () => new ClineConfigGenerator(this.serverUrl)],
['aider', () => new AiderConfigGenerator(this.serverUrl)],
]);
}
/**
* Create a generator for the specified tool
*/
createGenerator(tool) {
const generatorFactory = this.generators.get(tool.toLowerCase());
return generatorFactory ? generatorFactory() : null;
}
/**
* Get all available tool names
*/
getAvailableTools() {
return Array.from(this.generators.keys());
}
/**
* Get all generators
*/
getAllGenerators() {
const result = new Map();
for (const [tool, factory] of this.generators) {
result.set(tool, factory());
}
return result;
}
/**
* Check if a tool is supported
*/
isToolSupported(tool) {
return this.generators.has(tool.toLowerCase());
}
/**
* Get tool display information
*/
getToolInfo() {
return this.getAvailableTools().map(tool => {
const generator = this.createGenerator(tool);
return {
name: tool,
displayName: generator.getToolName(),
requiresAuth: generator.requiresAuth()
};
});
}
}
//# sourceMappingURL=ConfigGeneratorFactory.js.map