Files
puaros/packages/guardian/examples/good-architecture/domain/repositories/IUserRepository.ts
imfozilbek 03705b5264 feat(guardian): add guardian package - code quality analyzer
Add @puaros/guardian package v0.1.0 - code quality guardian for vibe coders and enterprise teams.

Features:
- Hardcode detection (magic numbers, magic strings)
- Circular dependency detection
- Naming convention enforcement (Clean Architecture)
- Architecture violation detection
- CLI tool with comprehensive reporting
- 159 tests with 80%+ coverage
- Smart suggestions for fixes
- Built for AI-assisted development

Built with Clean Architecture and DDD principles.
Works with Claude, GPT, Copilot, Cursor, and any AI coding assistant.
2025-11-24 02:54:39 +05:00

58 lines
1.1 KiB
TypeScript

import { User } from "../aggregates/User"
import { UserId } from "../value-objects/UserId"
import { Email } from "../value-objects/Email"
/**
* User Repository Interface
*
* DDD Pattern: Repository
* - Interface in domain layer
* - Implementation in infrastructure layer
* - Collection-like API for aggregates
*
* SOLID Principles:
* - DIP: domain depends on abstraction
* - ISP: focused interface
* - SRP: manages User persistence
*
* Clean Architecture:
* - Domain doesn't know about DB
* - Infrastructure implements this
*/
export interface IUserRepository {
/**
* Save user (create or update)
*/
save(user: User): Promise<void>
/**
* Find user by ID
*/
findById(id: UserId): Promise<User | null>
/**
* Find user by email
*/
findByEmail(email: Email): Promise<User | null>
/**
* Find all users
*/
findAll(): Promise<User[]>
/**
* Find active users
*/
findActive(): Promise<User[]>
/**
* Delete user
*/
delete(id: UserId): Promise<void>
/**
* Check if user exists
*/
exists(id: UserId): Promise<boolean>
}