Files
puaros/packages/guardian/examples/bad-architecture/circular/OrderService.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

35 lines
907 B
TypeScript

import { UserService } from "./UserService"
/**
* BAD EXAMPLE: Circular Dependency (part 2)
*
* OrderService -> UserService (creates cycle)
*/
export class OrderService {
constructor(private readonly userService: UserService) {}
public getOrdersByUser(userId: string): void {
console.warn(`Getting orders for user ${userId}`)
}
public calculateUserDiscount(userId: string): number {
const totalSpent = this.userService.getUserTotalSpent(userId)
return totalSpent > 1000 ? 0.1 : 0
}
}
/**
* ✅ GOOD VERSION:
*
* // interfaces/IOrderService.ts
* export interface IOrderService {
* getOrdersByUser(userId: string): Promise<Order[]>
* }
*
* // UserService.ts
* constructor(private readonly orderService: IOrderService) {}
*
* // OrderService.ts - no dependency on UserService
* // Use domain events or separate service for discount logic
*/