chore: refactor hardcoded values to constants (v0.5.1)

Major internal refactoring to eliminate hardcoded values and improve
maintainability. Guardian now fully passes its own quality checks!

Changes:
- Extract all RepositoryViolation messages to domain constants
- Extract all framework leak template strings to centralized constants
- Extract all layer paths to infrastructure constants
- Extract all regex patterns to IMPORT_PATTERNS constant
- Add 30+ new constants for better maintainability

New files:
- src/infrastructure/constants/paths.ts (layer paths, patterns)
- src/domain/constants/Messages.ts (25+ repository messages)
- src/domain/constants/FrameworkCategories.ts (framework categories)
- src/shared/constants/layers.ts (layer names)

Impact:
- Reduced hardcoded values from 37 to 1 (97% improvement)
- Guardian passes its own src/ directory checks with 0 violations
- All 292 tests still passing (100% pass rate)
- No breaking changes - fully backwards compatible

Test results:
- 292 tests passing (100% pass rate)
- 96.77% statement coverage
- 83.82% branch coverage
This commit is contained in:
imfozilbek
2025-11-24 20:12:08 +05:00
parent 0534fdf1bd
commit a34ca85241
19 changed files with 416 additions and 96 deletions

View File

@@ -13,6 +13,7 @@ import {
PATH_PATTERNS,
PATTERN_WORDS,
} from "../constants/detectorPatterns"
import { NAMING_SUGGESTION_DEFAULT } from "../constants/naming-patterns"
/**
* Detects naming convention violations based on Clean Architecture layers
@@ -72,7 +73,7 @@ export class NamingConventionDetector implements INamingConventionDetector {
filePath,
NAMING_ERROR_MESSAGES.DOMAIN_FORBIDDEN,
fileName,
"Move to application or infrastructure layer, or rename to follow domain patterns",
NAMING_SUGGESTION_DEFAULT,
),
)
return violations