agentsqripts
Version:
Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems
44 lines (37 loc) • 1.24 kB
JavaScript
/**
* @file Detect synchronous database queries
* @description Single responsibility: Identify blocking synchronous database operations
*/
const { iterateLines } = require('../../../utils/patternDetector');
function detectSyncQueries(lines, filePath) {
const issues = [];
iterateLines(lines, (line, lineNumber, trimmed, i) => {
// Synchronous database operations
const syncPatterns = [
/\.findSync\s*\(/,
/\.querySync\s*\(/,
/db\.execSync\s*\(/,
/\.execSync\s*\(/
];
syncPatterns.forEach(pattern => {
if (pattern.test(trimmed)) {
issues.push({
type: 'sync_database_query',
severity: 'HIGH',
category: 'Database',
location: `${filePath}:${lineNumber}`,
line: lineNumber,
code: trimmed,
description: 'Synchronous database operation blocks event loop',
summary: 'Synchronous database operation',
recommendation: 'Use async equivalent with await or callbacks',
effort: 2,
impact: 'Prevents event loop blocking',
estimatedSavings: 'unblocks event loop'
});
}
});
});
return issues;
}
module.exports = detectSyncQueries;