Skip to content

RFC: Shared types — @guardm/types (path alias, no monorepo) #6

@Khoa-Dam

Description

@Khoa-Dam

Cross-repo companion to Khoa-Dam/GuardM-fe#8.

See that issue for full details. API-side changes required:

  1. Create src/types/ directory — decorator-free types only (interface, type, enum, pure const)
  2. Migrate existing enum files to thin re-exports from src/types/:
    • src/enums/crime-type.enum.tsexport { CrimeType } from '@guardm/types'
    • src/enums/verification-level.enum.tsexport { VerificationLevel } from '@guardm/types'
    • src/auth/enums/role.enum.tsexport { Role } from '@guardm/types'
  3. Add to tsconfig.json:
    "paths": { "@guardm/types": ["./src/types/index.ts"] }
  4. Remove local ParsedReport and AreaAnalysis interfaces from ai.service.ts — import from @guardm/types
  5. Remove local CrimeHeatmapData from crime-reports.service.ts — import from @guardm/types

All existing API internal imports (import { CrimeType } from '../../enums/crime-type.enum') continue to work with zero changes.

🤖 Generated with Claude Code via /improve-codebase-architecture + /typescript-pro

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions