agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
39 lines (32 loc) • 1.22 kB
JavaScript
/**
* @file Check if duplication is a template pattern
* @description Single responsibility: Identify if blocks follow common template patterns
*/
const getTemplatePatterns = require('./template-patterns/getTemplatePatterns');
const checkTemplateMatch = require('./template-patterns/checkTemplateMatch');
const checkFunctionNamePattern = require('./template-patterns/checkFunctionNamePattern');
/**
* Check if it's a template pattern
*/
function isTemplatePattern(blocks, classification) {
const templatePatterns = getTemplatePatterns();
// Check each template pattern
for (const pattern of templatePatterns) {
const content = blocks[0].content;
if (checkTemplateMatch(content, pattern)) {
classification.pattern = pattern.name;
return true;
}
}
// Check for function name patterns (e.g., all formatX functions)
const functionNames = blocks.map(b => b.name).filter(n => n && n !== 'anonymous');
if (functionNames.length === blocks.length) {
const namePattern = checkFunctionNamePattern(functionNames);
if (namePattern) {
classification.pattern = namePattern;
return true;
}
}
return false;
}
module.exports = isTemplatePattern;