Skip to main content
Glama

In Memoria

test-file-extension-mapping.js•4 kB
#!/usr/bin/env node import { SemanticAnalyzer } from '../rust-core/index.js'; async function testFileExtensionMapping() { console.log('šŸ” Testing file extension to language mapping...\n'); const analyzer = new SemanticAnalyzer(); // Test file extension mappings const extensionTests = [ // TypeScript variants { file: 'component.ts', expectedLang: 'typescript' }, { file: 'component.tsx', expectedLang: 'typescript' }, // JavaScript variants { file: 'script.js', expectedLang: 'javascript' }, { file: 'component.jsx', expectedLang: 'javascript' }, // Single extensions { file: 'main.py', expectedLang: 'python' }, { file: 'main.rs', expectedLang: 'rust' }, { file: 'main.go', expectedLang: 'go' }, { file: 'Main.java', expectedLang: 'java' }, { file: 'main.c', expectedLang: 'c' }, { file: 'main.cs', expectedLang: 'csharp' }, { file: 'query.sql', expectedLang: 'sql' }, // C++ variants { file: 'main.cpp', expectedLang: 'cpp' }, { file: 'main.cc', expectedLang: 'cpp' }, { file: 'main.cxx', expectedLang: 'cpp' }, // Framework files { file: 'Component.svelte', expectedLang: 'svelte' }, { file: 'Component.vue', expectedLang: 'vue' }, // Should be filtered out / unsupported { file: 'readme.md', expectedLang: 'generic' }, { file: 'config.json', expectedLang: 'generic' }, { file: 'style.css', expectedLang: 'generic' }, { file: 'no-extension', expectedLang: 'generic' } ]; console.log('šŸ“‹ Testing language detection for file extensions...\n'); let passed = 0; let failed = 0; // Test the should_analyze_file logic by trying to analyze different file types for (const test of extensionTests) { const simpleContent = '// test content'; const shouldBeSupported = test.expectedLang !== 'generic'; console.log(`šŸ” Testing ${test.file} (expected: ${test.expectedLang}):`); try { const concepts = await analyzer.analyzeFileContent(test.file, simpleContent); if (shouldBeSupported) { console.log(` āœ… Supported: Found ${concepts.length} concepts`); passed++; } else { console.log(` āš ļø Unexpectedly supported (found ${concepts.length} concepts)`); failed++; } } catch (error) { if (shouldBeSupported) { if (error.message.includes('Unsupported language') || error.message.includes('not supported')) { console.log(` āŒ Should be supported but got: ${error.message}`); failed++; } else { console.log(` āœ… Supported but parsing failed (expected): ${error.message}`); passed++; } } else { console.log(` āœ… Correctly unsupported: ${error.message}`); passed++; } } } // Test file filtering logic by checking languages detection console.log('\nšŸ“‹ Testing language enumeration...\n'); try { const languages = await analyzer.detectLanguages('./src'); console.log('āœ… Detected languages in ./src:', languages); // Check if our new languages would be detected const expectedLanguages = ['typescript', 'javascript']; // Based on our codebase const missingLanguages = expectedLanguages.filter(lang => !languages.includes(lang)); if (missingLanguages.length === 0) { console.log('āœ… All expected languages detected'); passed++; } else { console.log('āŒ Missing languages:', missingLanguages); failed++; } } catch (error) { console.log('āŒ Language detection failed:', error.message); failed++; } // Summary console.log('\nšŸ“Š File Extension Mapping Test Summary:'); console.log(` āœ… Passed: ${passed}`); console.log(` āŒ Failed: ${failed}`); console.log(` šŸ“ˆ Success Rate: ${Math.round((passed / (passed + failed)) * 100)}%`); return passed > failed; } testFileExtensionMapping().catch(console.error);

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/pi22by7/In-Memoria'

If you have feedback or need assistance with the MCP directory API, please join our Discord server