agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
36 lines (30 loc) • 1.16 kB
JavaScript
/**
* @file Check for different dataset iterations
* @description Single responsibility: Determine if loops iterate over unrelated datasets
*/
const extractIterationVariable = require('./extractIterationVariable');
/**
* Check if we're iterating over different datasets
*/
function isIteratingDifferentDatasets(outerLine, innerLine) {
// Extract variable names from iteration statements
const outerVar = extractIterationVariable(outerLine);
const innerVar = extractIterationVariable(innerLine);
if (!outerVar || !innerVar) return false;
// Check for common patterns indicating different data sources
const differentDatasetPatterns = [
// patterns → matches
[/patterns?/i, /matches?/i],
// files → lines
[/files?/i, /lines?/i],
// items → properties
[/items?/i, /(props?|properties)/i],
// nodes → children
[/nodes?/i, /children/i]
];
return differentDatasetPatterns.some(([pattern1, pattern2]) => {
return (pattern1.test(outerVar) && pattern2.test(innerVar)) ||
(pattern2.test(outerVar) && pattern1.test(innerVar));
});
}
module.exports = isIteratingDifferentDatasets;