Skip to content

Introduce packages/shared for front/back contracts #139

@arediss

Description

@arediss

Context

Currently packages/ contains backend/, frontend/, plugins/no shared package.

Concrete duplication example:

  • ACTIVE_REQUEST_STATUSES defined identically (['pending', 'approved', 'processing', 'failed']) in:
    • packages/frontend/src/utils/requestStatus.ts:2
    • packages/backend/src/utils/requestStatus.ts:13

Risk: silent divergence at the next workflow change.

Scope

  • Full audit of constants/types duplicated front↔back (statuses, enums, DTOs)
  • Create packages/shared (ESM, strict TS, no heavy deps)
  • Migrate progressively: ACTIVE_REQUEST_STATUSES first, then cross-cutting DTO types
  • Update workspaces / tsconfig

Success criteria

  • Single source of truth for cross-cutting contracts
  • 0 back↔front duplication on shareable constants

Priority

Medium — launch after the audit if at least 3-4 real duplications are identified.

Parent: #145

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions