Axiom updates
This commit is contained in:
parent
1b740c0234
commit
d5fbc5d212
1 changed files with 3 additions and 1 deletions
|
|
@ -48,13 +48,15 @@ Key axioms
|
|||
- No casts (`as`, angle brackets) and no `any`/`unknown` in app code. Generated files are exempt.
|
||||
- Arrays that are required in OpenAPI are non-nullable in domain types (e.g., `Meal.recipes`).
|
||||
- Disallow runtime type checks in app code; acceptable exceptions: DOM event narrowing, error/env handling in the boundary.
|
||||
- Let the type system prevent mistakes: encode intent in function signatures. Prefer explicit option objects to loose primitives, make required fields non-optional, and avoid permissive overloads that widen the error surface.
|
||||
- Navigation is slug-scoped and helper-driven: only use `src/router/links.ts` helpers and named routes. For non-id pages pass `{ slug }` or omit to infer; for id pages pass `id` or `{ id, slug }`. Never build path strings or read slugs from route params in components.
|
||||
|
||||
Layout
|
||||
- `src/api/` — Typed client and SDK boundary
|
||||
- `src/domain/` — Domain types and decoders
|
||||
- `src/composables/` — Reusable app logic (auth, meals, shopping, pagination, alert)
|
||||
- `src/components/` — UI components and pages
|
||||
- `src/router/` — Routes and helpers (`parseRouteId`, `parseQueryString`)
|
||||
- `src/router/` — Routes and helpers (`links.ts` for slug-scoped navigation, plus `parseRouteId`, `parseQueryString`)
|
||||
|
||||
Testing and tooling
|
||||
- Vitest + MSW under `tests/`
|
||||
|
|
|
|||
Loading…
Reference in a new issue