UNPKG

agentsqripts

Version:

Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems

45 lines (37 loc) 1.32 kB
/** * @file Check if similarity is acceptable given the context * @description Single responsibility: Determine if code similarity is acceptable based on context */ const areSimilarlyNamedFunctions = require('./areSimilarlyNamedFunctions'); /** * Check if similarity is acceptable given the context */ function isAcceptableSimilarity(blocks, context, classification) { // Test files often have similar setup/teardown if (context.allTestFiles && classification.pattern === 'test_setup') { classification.reason = 'test_boilerplate'; return true; } // Configuration files often have similar structure if (context.allConfigFiles) { classification.reason = 'config_structure'; return true; } // Migration files follow patterns if (context.allMigrationFiles) { classification.reason = 'migration_pattern'; return true; } // CLI help functions have similar structure but different content if (blocks.every(b => b.name === 'showHelp' || b.name === 'showUsage')) { classification.reason = 'help_documentation'; return true; } // Similar names suggest intentional pattern if (areSimilarlyNamedFunctions(blocks)) { classification.reason = 'naming_convention'; return true; } return false; } module.exports = isAcceptableSimilarity;