TypeScript/JavaScript Patterns

This file extends common/patterns.md with TypeScript/JavaScript specific content.

API Response Format

1interface ApiResponse<T> {
2  success: boolean
3  data?: T
4  error?: string
5  meta?: {
6    total: number
7    page: number
8    limit: number
9  }
10}

Custom Hooks Pattern

1export function useDebounce<T>(value: T, delay: number): T {
2  const [debouncedValue, setDebouncedValue] = useState<T>(value)
3
4  useEffect(() => {
5    const handler = setTimeout(() => setDebouncedValue(value), delay)
6    return () => clearTimeout(handler)
7  }, [value, delay])
8
9  return debouncedValue
10}

Repository Pattern

1interface Repository<T> {
2  findAll(filters?: Filters): Promise<T[]>
3  findById(id: string): Promise<T | null>
4  create(data: CreateDto): Promise<T>
5  update(id: string, data: UpdateDto): Promise<T>
6  delete(id: string): Promise<void>
7}