@sun-asterisk/sunlint
Version:
☀️ SunLint - Multi-language static analysis tool for code quality and security | Sun* Engineering Standards
47 lines (46 loc) • 1.29 kB
JSON
{
"rule": "C040",
"name": "Centralized Validation Logic",
"description": "Don't scatter validation logic across multiple classes",
"category": "code-quality",
"languages": ["javascript", "typescript"],
"applies_to": ["all"],
"strategies": ["symbol-based", "regex"],
"priority": "hybrid",
"severity": "major",
"enabled": true,
"options": {
"minCentralizationScore": 70,
"maxDuplicationCount": 3,
"frameworkDetection": true,
"layerDetection": true,
"validationPatterns": [
"validate*",
"*Validator",
"isValid*",
"ensure*",
"check*"
],
"frameworkKeywords": [
"zod",
"joi",
"yup",
"class-validator",
"ajv",
"checkSchema",
"validateSync"
],
"layerPatterns": {
"controller": ["**/controllers/**", "**/controller/**", "**/*Controller*", "**/*controller*"],
"service": ["**/services/**", "**/service/**", "**/*Service*", "**/*service*"],
"repository": ["**/repositories/**", "**/repository/**", "**/*Repository*", "**/*repository*"],
"validator": ["**/validators/**", "**/validation/**", "**/*Validator*", "**/*validator*"]
},
"errorTypes": [
"ValidationError",
"BadRequest",
"InvalidInput",
"TypeError"
]
}
}