mirror of
https://github.com/samiyev/puaros.git
synced 2025-12-28 07:16:53 +05:00
feat: add repository pattern validation (v0.5.0)
Add comprehensive Repository Pattern validation to detect violations and ensure proper domain-infrastructure separation. Features: - ORM type detection in repository interfaces (25+ patterns) - Concrete repository usage detection in use cases - Repository instantiation detection (new Repository()) - Domain language validation for repository methods - Smart violation reporting with fix suggestions Tests: - 31 new tests for repository pattern detection - 292 total tests passing (100% pass rate) - 96.77% statement coverage, 83.82% branch coverage Examples: - 8 example files (4 bad patterns, 4 good patterns) - Demonstrates Clean Architecture and SOLID principles
This commit is contained in:
@@ -9,6 +9,7 @@ export const RULES = {
|
||||
FRAMEWORK_LEAK: "framework-leak",
|
||||
ENTITY_EXPOSURE: "entity-exposure",
|
||||
DEPENDENCY_DIRECTION: "dependency-direction",
|
||||
REPOSITORY_PATTERN: "repository-pattern",
|
||||
} as const
|
||||
|
||||
/**
|
||||
@@ -397,4 +398,15 @@ export const FRAMEWORK_LEAK_MESSAGES = {
|
||||
DOMAIN_IMPORT:
|
||||
'Domain layer imports framework-specific package "{package}". Use interfaces and dependency injection instead.',
|
||||
SUGGESTION: "Create an interface in domain layer and implement it in infrastructure layer.",
|
||||
PACKAGE_PLACEHOLDER: "{package}",
|
||||
} as const
|
||||
|
||||
/**
|
||||
* Repository pattern violation types
|
||||
*/
|
||||
export const REPOSITORY_VIOLATION_TYPES = {
|
||||
ORM_TYPE_IN_INTERFACE: "orm-type-in-interface",
|
||||
CONCRETE_REPOSITORY_IN_USE_CASE: "concrete-repository-in-use-case",
|
||||
NEW_REPOSITORY_IN_USE_CASE: "new-repository-in-use-case",
|
||||
NON_DOMAIN_METHOD_NAME: "non-domain-method-name",
|
||||
} as const
|
||||
|
||||
Reference in New Issue
Block a user