mirror of
https://github.com/samiyev/puaros.git
synced 2025-12-28 07:16:53 +05:00
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.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import { ValueObject } from "../../../../src/domain/value-objects/ValueObject"
|
||||
import { v4 as uuidv4, validate as uuidValidate } from "uuid"
|
||||
|
||||
interface UserIdProps {
|
||||
readonly value: string
|
||||
}
|
||||
|
||||
/**
|
||||
* UserId Value Object
|
||||
*
|
||||
* DDD Pattern: Identity Value Object
|
||||
* - Strongly typed ID (not just string)
|
||||
* - Self-validating
|
||||
* - Type safety: can't mix with OrderId
|
||||
*
|
||||
* Benefits:
|
||||
* - No accidental ID mixing: `findUser(orderId)` won't compile
|
||||
* - Clear intent in code
|
||||
* - Encapsulated validation
|
||||
*/
|
||||
export class UserId extends ValueObject<UserIdProps> {
|
||||
private constructor(props: UserIdProps) {
|
||||
super(props)
|
||||
}
|
||||
|
||||
public static create(id?: string): UserId {
|
||||
const value = id ?? uuidv4()
|
||||
|
||||
if (!uuidValidate(value)) {
|
||||
throw new Error(`Invalid UserId format: ${value}`)
|
||||
}
|
||||
|
||||
return new UserId({ value })
|
||||
}
|
||||
|
||||
public get value(): string {
|
||||
return this.props.value
|
||||
}
|
||||
|
||||
public toString(): string {
|
||||
return this.props.value
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user