agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
53 lines (44 loc) • 1.35 kB
JavaScript
/**
* @file Detect frameworks used in code
* @description Single responsibility: Identify frameworks from code content
*/
function detectFramework(content) {
const frameworks = [];
// React detection
if (/import\s+.*from\s+['"]react['"]/.test(content) ||
/require\(['"]react['"]\)/.test(content) ||
content.includes('useState') ||
content.includes('useEffect')) {
frameworks.push('react');
}
// Vue detection
if (/import\s+.*from\s+['"]vue['"]/.test(content) ||
content.includes('Vue.component')) {
frameworks.push('vue');
}
// Express detection
if (/require\(['"]express['"]\)/.test(content) ||
content.includes('express()') ||
content.includes('router.get') ||
content.includes('app.use')) {
frameworks.push('express');
}
// Jest detection
if (content.includes('jest.fn()') ||
content.includes('expect(') ||
content.includes('jest.mock')) {
frameworks.push('jest');
}
// Mocha detection
if (content.includes('mocha') ||
(content.includes('describe(') && content.includes('chai'))) {
frameworks.push('mocha');
}
// Angular detection
if (/@Component\s*\(/.test(content) ||
content.includes('@angular/')) {
frameworks.push('angular');
}
return frameworks;
}
module.exports = detectFramework;