23 lines
790 B
Markdown
23 lines
790 B
Markdown
# ADR-002: TypeScript + Express for API
|
|
|
|
## Status
|
|
Accepted
|
|
|
|
## Context
|
|
The API server needs to be fast to develop, type-safe, and maintainable.
|
|
|
|
## Decision
|
|
Use TypeScript with Express.js, Drizzle ORM, and PostgreSQL.
|
|
|
|
## Rationale
|
|
- TypeScript provides end-to-end type safety when shared with the frontend
|
|
- Express is mature, well-documented, and sufficient for a REST API
|
|
- Drizzle ORM is lightweight, type-safe, and generates SQL directly
|
|
- Zod provides runtime request validation that aligns with TypeScript types
|
|
- bcrypt for password hashing, JWT for auth tokens
|
|
|
|
## Consequences
|
|
- API and web share the `@fleetforge/shared` package
|
|
- Drizzle migrations are SQL-based, version-controlled in `infrastructure/migrations/`
|
|
- No ORM overhead from heavier alternatives (Prisma, TypeORM)
|