munch-ease-frontend/README.md

115 lines
3.9 KiB
Markdown
Raw Normal View History

2025-10-18 03:06:24 +00:00
## Munch Ease — Plan, Cook, Shop, Repeat
2024-01-07 02:40:35 +00:00
2025-10-18 03:06:24 +00:00
Munch Ease is a snappy Vue 3 app that helps you plan meals, manage recipes, and turn plans into stress-free shopping lists. Search and save recipes, build your weekly meal plan, and seamlessly check items off your shopping list—everything stays in sync so you can focus on whats cooking.
2025-10-18 02:08:22 +00:00
2025-10-18 03:06:24 +00:00
Built with modern Vue patterns, a clean API layer, and lightweight tests, the project is easy to extend and fun to work on.
---
## Quick start
1) Install dependencies
```bash
2024-01-07 02:40:35 +00:00
npm install
```
2025-10-18 03:06:24 +00:00
2) Run the dev server
2025-10-18 02:08:22 +00:00
2025-10-18 03:06:24 +00:00
```bash
2024-01-07 02:40:35 +00:00
npm run serve
```
2025-10-18 03:06:24 +00:00
3) Run unit tests (Vitest)
2025-10-18 02:08:22 +00:00
2025-10-18 03:06:24 +00:00
```bash
npm run test
2024-01-07 02:40:35 +00:00
```
2025-10-18 03:06:24 +00:00
4) Build for production
```bash
2024-01-07 02:40:35 +00:00
npm run build
```
2025-10-18 03:06:24 +00:00
Environment
- API base URL: set VUE_APP_API_BASE (e.g. http://localhost:8081)
2025-10-18 02:08:22 +00:00
2025-10-18 03:06:24 +00:00
---
## Architecture and conventions
Squashed commit of the following: commit a94394866d9e957693c7380b846cfee98739b8be Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:11:28 2025 +1100 Ran codegen commit affaa0e4a80edbb5185f06b3a252e1790e349ee3 Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:09:36 2025 +1100 Moved shopping.ts into composable commit 83ced27a549784a35fa2715630d6fdca7f12f4aa Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 23:43:09 2025 +1100 Purchase fixed commit 2fff14016eedaeb773c0f8b4ee9ccf08a1027449 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:54:36 2025 +1100 typescript migration complete commit 17651bcc8b0f40ac1579563379c8fc45aba1997d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:38:22 2025 +1100 Removing redundant null checks and type checking commit 0cc3a508cd5c7d723eb76d665443b4d0fdad493f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:30:52 2025 +1100 Moving date to sdk layer commit 35d1189009b27876dd167f353c04f217b7c2805e Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:42:47 2025 +1100 No components re-parse dates already decoded by the boundary. commit c4b82a31fad75bd5ec987847847076b537d35a7d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:09:03 2025 +1100 Update spec and types commit 55984bf7c9d51e76eaa6713a3ca86e9a73eb6b03 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 20:22:01 2025 +1100 Disallow casting entirely commit eb02dc6a7b52048281a87924765d9aab1303150f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:24:57 2025 +1100 Replaced components[schemas] outside sdk commit 2f4c1bed56724e4f8a0d586921367604ce127a1a Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:06:38 2025 +1100 removed persons.ts commit ae966db8a330c9f521f3c3cb7417c4f201467661 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:56:27 2025 +1100 Remove casts from sdk commit 42c253021e504b45963834e56551ded55be377f1 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:38:05 2025 +1100 Remove *Like types commit b0a4e21f19005fd69c0e9e16edaa9c10b1ca8567 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:32:26 2025 +1100 Defined quantity construct commit bf4666b89e2d395bdd091ffb6ee66a9cfb866c6d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:27:55 2025 +1100 Moved shopping view-model mapping (DTO → UI groups/meals) into `useShopping` (`mapItemToUI`, `groupsFrom`, `mealsFrom`). - Refactored `CurrentShoppingListPage.vue` to consume composable helpers (less duplication, no local cast-heavy mapping). - Refactored `PurchasedShoppingListPage.vue` to consume composable helpers and return typed SDK result; removed casts. commit e7f84b453509a8fcffbb9923ec001f5be85e67e4 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:17:29 2025 +1100 Removing casts, any, unknown and runtime type checking commit 6346eef4aff4d64b04f7dfa837c5b988645c242c Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:42:14 2025 +1100 domain/decoders.ts: removed casts; `purchaseDate` and `quantity` now trust API shapes. commit 8b62eb9a9f2c0fe058d2dd37cc80071089379c34 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:36:50 2025 +1100 Plan alignment commit dd81fd454b8e14874930cfc44828abddffd50c41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:10:11 2025 +1100 More cast removals commit 377d143ffc8596f46a3b32746d3710d99eb257cd Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:53:30 2025 +1100 Type tightening in sdk commit ce2577f22190b18a52ae0fa4238c6d1beb7e3bb7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:24:51 2025 +1100 All mappers removed/neutralized commit 177205561a2d44aae2683e046960ef5fe8992255 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:20:34 2025 +1100 Replace ingredientnormalized with ingredient commit fc75b24977cc89d420dc768fb4dc4ade84ed32c2 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:16:03 2025 +1100 More type safety tweaks and changes commit c35cc2d3d58307290bbc2d5978baa48c1eda97b6 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:46:13 2025 +1100 Update vue-tsc commit 2cd429804ca34a42c83ea81a3ae68e2cfccb5e36 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:28:01 2025 +1100 Ongoing SDK changes to tighten datatypes commit e11847ae515eadf1bd33e88e154125fe361a5191 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:31:03 2025 +1100 Enforce template type checking commit 777b8dee7e9ef0807a2b2c039443920671fe9c2d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:28:52 2025 +1100 Boilerplate Collapse mappers to “decoders” and delete ad‑hoc view types commit 4169c69d59cc16a24298351c38a60b4d4845f0c9 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:25:04 2025 +1100 Plan updates commit de65164c91d9dc641ec86424bd4fe40f91bb4ada Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:16:37 2025 +1100 More camelCase changes commit 4121c2157511f706b4704c5d5f769034d9bce5a0 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:00:48 2025 +1100 Remove unused js shims and autoformat project commit d475565529bd0c12f06f85f0bcbf19c857176fa7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:59:10 2025 +1100 camelCase conversions and api type propogation commit 7b3b633a9d21c74977d4de120138fff192faaa78 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:11:22 2025 +1100 Strategise ts improvements commit 9396e4928abcf9d8a74a656ad21913f95e8e3e41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:06:19 2025 +1100 Linting errors commit 528fa3bc2f6c42de6de37d9593d2ed31630d0e81 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:59:21 2025 +1100 Recipe search pagination commit 4993c3e53f540e098f3275715c86754dee9392af Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:33:13 2025 +1100 Removed redundant nonnull check commit c03d0b582d0a8b17e675cdf9bdab09eac4091d44 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:29:57 2025 +1100 Persons api pagination commit 67008b4a94a90295ed811594ca0e7f37c80a8305 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:44:32 2025 +1100 ts pages starting to work commit 0144e7f70d19289007d6b035594786ce573cbc70 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:39:17 2025 +1100 More typescript fixes commit dc429f84b48ca5892c6043db81b89fa6431d872d Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:28:54 2025 +1100 5) API client and codegen guardrails — DONE (scripts) / PARTIAL (CI wiring) commit 36ba555d9a600ca8cca4c18571e0d96584243556 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:26:30 2025 +1100 Tighten composable and UI types (remove last anys) — DONE commit 97523a9ef6aa972497e62d63c6f666453bb7eefc Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:24:11 2025 +1100 Align OpenAPI params to remove residual casts, Strengthen MSW tests for the typed client commit 608f6b751cb982487e90560792aec33317981c60 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:14:11 2025 +1100 ts complete, rerun codegen commit ca28376ed7bcb4ff4c7669210ce6eebfd9cb6eaa Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:09:29 2025 +1100 Document All JS under `src/` is now removed; the source tree is TS-only. commit ff3338b108bbf094f987302a21f1779d8f23368f Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:59:49 2025 +1100 Ts tests commit ce4555a279c715f427f9d00c346561efd74705f8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:56:18 2025 +1100 Completed Generate real OpenAPI types and wire them commit b7304aa7390f33a372acda46c593d6592aabf3f7 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:02:27 2025 +1100 DatePicker ts conversion commit cb6ebdba286d44dbaae522ee29d95aa3ccfb5dc1 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:56:38 2025 +1100 Removed js files commit 549eefd369499e0a1d35ff88a659c8aecd955a02 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:49:31 2025 +1100 - Utilities converted to TS: `src/dateformats.ts`, `src/units.ts`; imports updated accordingly. - Router converted to TS: `src/router/index.ts`; legacy `index.js` removed. commit 6f7731287f4166df5c02164ec4220e370c6d7a35 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:48:58 2025 +1100 alerts ts conversion commit 4b1baec85a74b75e94d2392fea3b5abee294089c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:27:35 2025 +1100 use v1 api commit da11976b96d791935cb16c7b1fdb074a2c87f53c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:18:17 2025 +1100 - Shopping pages converted to TS: `MyShoppingPage.vue`, `CurrentShoppingListPage.vue`, `PurchasedShoppingListPage.vue` (typed refs/computed; stable keys; wired to helpers). commit acf740380bf53386e12e108ba09a507141176733 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:08:22 2025 +1100 Shopping MyShoppingPage converted to TS with typed refs. commit 744d7e792d013f0ed04f11280f3351950925beee Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:05:19 2025 +1100 Shopping gets types commit 4e576dca94424383bdf753403d7764e22a28f377 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:57:50 2025 +1100 Error tests commit ac6ae41b840c30196a370a077e02953c63977908 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:56:20 2025 +1100 More datatypes commit d7ea6538b1af6144933a2603d330cb17e04809db Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:45:49 2025 +1100 spec updates commit 0d6cfc1328df8ab4a4baf8f31a7a4e1ea50fd850 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:44:34 2025 +1100 `codegen:check` warns when backend spec is newer than generated types commit 54bff353b8e7429961364803300b38bc70f963c2 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:42:24 2025 +1100 PersonList ts commit e5ffcdde7e9538525704581a82606261596d31f5 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:40:53 2025 +1100 MealCard ts commit 5432d8333c023b0c6e25c9a6ac31519c818e6a58 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:39:29 2025 +1100 ue CLI now serves/builds with TypeScript entry, ESLint configured to parse TS, use ts code commit aba3fd532550a90adeb957b4ddbb43798bcf9e5a Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:23:16 2025 +1100 composables typescript commit 28ba44cc951fddfe64c386e77a91c2f46060cfb8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:19:09 2025 +1100 let the typescriptin begin commit 98e57e4d65cecdd1ed5ed3fbf6b1ebf46ae6af10 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:13:58 2025 +1100 Added typescript
2025-10-19 13:12:40 +00:00
Strict TypeScript, Vue 3 Composition API, and a single typed API boundary.
Key axioms
- OpenAPI (generated `src/api/types.ts`) is the single source of truth for shapes.
- SDK (`src/api/sdk.ts`) is the only data access surface; UI uses domain types from `src/domain/types.ts`.
- Domain normalization is minimal in `src/domain/decoders.ts` (e.g., date strings → `Date`).
- 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.
2025-11-02 07:33:51 +00:00
- 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.
Squashed commit of the following: commit a94394866d9e957693c7380b846cfee98739b8be Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:11:28 2025 +1100 Ran codegen commit affaa0e4a80edbb5185f06b3a252e1790e349ee3 Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:09:36 2025 +1100 Moved shopping.ts into composable commit 83ced27a549784a35fa2715630d6fdca7f12f4aa Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 23:43:09 2025 +1100 Purchase fixed commit 2fff14016eedaeb773c0f8b4ee9ccf08a1027449 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:54:36 2025 +1100 typescript migration complete commit 17651bcc8b0f40ac1579563379c8fc45aba1997d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:38:22 2025 +1100 Removing redundant null checks and type checking commit 0cc3a508cd5c7d723eb76d665443b4d0fdad493f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:30:52 2025 +1100 Moving date to sdk layer commit 35d1189009b27876dd167f353c04f217b7c2805e Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:42:47 2025 +1100 No components re-parse dates already decoded by the boundary. commit c4b82a31fad75bd5ec987847847076b537d35a7d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:09:03 2025 +1100 Update spec and types commit 55984bf7c9d51e76eaa6713a3ca86e9a73eb6b03 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 20:22:01 2025 +1100 Disallow casting entirely commit eb02dc6a7b52048281a87924765d9aab1303150f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:24:57 2025 +1100 Replaced components[schemas] outside sdk commit 2f4c1bed56724e4f8a0d586921367604ce127a1a Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:06:38 2025 +1100 removed persons.ts commit ae966db8a330c9f521f3c3cb7417c4f201467661 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:56:27 2025 +1100 Remove casts from sdk commit 42c253021e504b45963834e56551ded55be377f1 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:38:05 2025 +1100 Remove *Like types commit b0a4e21f19005fd69c0e9e16edaa9c10b1ca8567 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:32:26 2025 +1100 Defined quantity construct commit bf4666b89e2d395bdd091ffb6ee66a9cfb866c6d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:27:55 2025 +1100 Moved shopping view-model mapping (DTO → UI groups/meals) into `useShopping` (`mapItemToUI`, `groupsFrom`, `mealsFrom`). - Refactored `CurrentShoppingListPage.vue` to consume composable helpers (less duplication, no local cast-heavy mapping). - Refactored `PurchasedShoppingListPage.vue` to consume composable helpers and return typed SDK result; removed casts. commit e7f84b453509a8fcffbb9923ec001f5be85e67e4 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:17:29 2025 +1100 Removing casts, any, unknown and runtime type checking commit 6346eef4aff4d64b04f7dfa837c5b988645c242c Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:42:14 2025 +1100 domain/decoders.ts: removed casts; `purchaseDate` and `quantity` now trust API shapes. commit 8b62eb9a9f2c0fe058d2dd37cc80071089379c34 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:36:50 2025 +1100 Plan alignment commit dd81fd454b8e14874930cfc44828abddffd50c41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:10:11 2025 +1100 More cast removals commit 377d143ffc8596f46a3b32746d3710d99eb257cd Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:53:30 2025 +1100 Type tightening in sdk commit ce2577f22190b18a52ae0fa4238c6d1beb7e3bb7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:24:51 2025 +1100 All mappers removed/neutralized commit 177205561a2d44aae2683e046960ef5fe8992255 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:20:34 2025 +1100 Replace ingredientnormalized with ingredient commit fc75b24977cc89d420dc768fb4dc4ade84ed32c2 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:16:03 2025 +1100 More type safety tweaks and changes commit c35cc2d3d58307290bbc2d5978baa48c1eda97b6 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:46:13 2025 +1100 Update vue-tsc commit 2cd429804ca34a42c83ea81a3ae68e2cfccb5e36 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:28:01 2025 +1100 Ongoing SDK changes to tighten datatypes commit e11847ae515eadf1bd33e88e154125fe361a5191 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:31:03 2025 +1100 Enforce template type checking commit 777b8dee7e9ef0807a2b2c039443920671fe9c2d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:28:52 2025 +1100 Boilerplate Collapse mappers to “decoders” and delete ad‑hoc view types commit 4169c69d59cc16a24298351c38a60b4d4845f0c9 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:25:04 2025 +1100 Plan updates commit de65164c91d9dc641ec86424bd4fe40f91bb4ada Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:16:37 2025 +1100 More camelCase changes commit 4121c2157511f706b4704c5d5f769034d9bce5a0 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:00:48 2025 +1100 Remove unused js shims and autoformat project commit d475565529bd0c12f06f85f0bcbf19c857176fa7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:59:10 2025 +1100 camelCase conversions and api type propogation commit 7b3b633a9d21c74977d4de120138fff192faaa78 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:11:22 2025 +1100 Strategise ts improvements commit 9396e4928abcf9d8a74a656ad21913f95e8e3e41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:06:19 2025 +1100 Linting errors commit 528fa3bc2f6c42de6de37d9593d2ed31630d0e81 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:59:21 2025 +1100 Recipe search pagination commit 4993c3e53f540e098f3275715c86754dee9392af Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:33:13 2025 +1100 Removed redundant nonnull check commit c03d0b582d0a8b17e675cdf9bdab09eac4091d44 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:29:57 2025 +1100 Persons api pagination commit 67008b4a94a90295ed811594ca0e7f37c80a8305 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:44:32 2025 +1100 ts pages starting to work commit 0144e7f70d19289007d6b035594786ce573cbc70 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:39:17 2025 +1100 More typescript fixes commit dc429f84b48ca5892c6043db81b89fa6431d872d Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:28:54 2025 +1100 5) API client and codegen guardrails — DONE (scripts) / PARTIAL (CI wiring) commit 36ba555d9a600ca8cca4c18571e0d96584243556 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:26:30 2025 +1100 Tighten composable and UI types (remove last anys) — DONE commit 97523a9ef6aa972497e62d63c6f666453bb7eefc Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:24:11 2025 +1100 Align OpenAPI params to remove residual casts, Strengthen MSW tests for the typed client commit 608f6b751cb982487e90560792aec33317981c60 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:14:11 2025 +1100 ts complete, rerun codegen commit ca28376ed7bcb4ff4c7669210ce6eebfd9cb6eaa Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:09:29 2025 +1100 Document All JS under `src/` is now removed; the source tree is TS-only. commit ff3338b108bbf094f987302a21f1779d8f23368f Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:59:49 2025 +1100 Ts tests commit ce4555a279c715f427f9d00c346561efd74705f8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:56:18 2025 +1100 Completed Generate real OpenAPI types and wire them commit b7304aa7390f33a372acda46c593d6592aabf3f7 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:02:27 2025 +1100 DatePicker ts conversion commit cb6ebdba286d44dbaae522ee29d95aa3ccfb5dc1 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:56:38 2025 +1100 Removed js files commit 549eefd369499e0a1d35ff88a659c8aecd955a02 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:49:31 2025 +1100 - Utilities converted to TS: `src/dateformats.ts`, `src/units.ts`; imports updated accordingly. - Router converted to TS: `src/router/index.ts`; legacy `index.js` removed. commit 6f7731287f4166df5c02164ec4220e370c6d7a35 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:48:58 2025 +1100 alerts ts conversion commit 4b1baec85a74b75e94d2392fea3b5abee294089c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:27:35 2025 +1100 use v1 api commit da11976b96d791935cb16c7b1fdb074a2c87f53c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:18:17 2025 +1100 - Shopping pages converted to TS: `MyShoppingPage.vue`, `CurrentShoppingListPage.vue`, `PurchasedShoppingListPage.vue` (typed refs/computed; stable keys; wired to helpers). commit acf740380bf53386e12e108ba09a507141176733 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:08:22 2025 +1100 Shopping MyShoppingPage converted to TS with typed refs. commit 744d7e792d013f0ed04f11280f3351950925beee Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:05:19 2025 +1100 Shopping gets types commit 4e576dca94424383bdf753403d7764e22a28f377 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:57:50 2025 +1100 Error tests commit ac6ae41b840c30196a370a077e02953c63977908 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:56:20 2025 +1100 More datatypes commit d7ea6538b1af6144933a2603d330cb17e04809db Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:45:49 2025 +1100 spec updates commit 0d6cfc1328df8ab4a4baf8f31a7a4e1ea50fd850 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:44:34 2025 +1100 `codegen:check` warns when backend spec is newer than generated types commit 54bff353b8e7429961364803300b38bc70f963c2 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:42:24 2025 +1100 PersonList ts commit e5ffcdde7e9538525704581a82606261596d31f5 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:40:53 2025 +1100 MealCard ts commit 5432d8333c023b0c6e25c9a6ac31519c818e6a58 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:39:29 2025 +1100 ue CLI now serves/builds with TypeScript entry, ESLint configured to parse TS, use ts code commit aba3fd532550a90adeb957b4ddbb43798bcf9e5a Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:23:16 2025 +1100 composables typescript commit 28ba44cc951fddfe64c386e77a91c2f46060cfb8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:19:09 2025 +1100 let the typescriptin begin commit 98e57e4d65cecdd1ed5ed3fbf6b1ebf46ae6af10 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:13:58 2025 +1100 Added typescript
2025-10-19 13:12:40 +00:00
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
2025-11-02 07:33:51 +00:00
- `src/router/` — Routes and helpers (`links.ts` for slug-scoped navigation, plus `parseRouteId`, `parseQueryString`)
Squashed commit of the following: commit a94394866d9e957693c7380b846cfee98739b8be Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:11:28 2025 +1100 Ran codegen commit affaa0e4a80edbb5185f06b3a252e1790e349ee3 Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:09:36 2025 +1100 Moved shopping.ts into composable commit 83ced27a549784a35fa2715630d6fdca7f12f4aa Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 23:43:09 2025 +1100 Purchase fixed commit 2fff14016eedaeb773c0f8b4ee9ccf08a1027449 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:54:36 2025 +1100 typescript migration complete commit 17651bcc8b0f40ac1579563379c8fc45aba1997d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:38:22 2025 +1100 Removing redundant null checks and type checking commit 0cc3a508cd5c7d723eb76d665443b4d0fdad493f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:30:52 2025 +1100 Moving date to sdk layer commit 35d1189009b27876dd167f353c04f217b7c2805e Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:42:47 2025 +1100 No components re-parse dates already decoded by the boundary. commit c4b82a31fad75bd5ec987847847076b537d35a7d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:09:03 2025 +1100 Update spec and types commit 55984bf7c9d51e76eaa6713a3ca86e9a73eb6b03 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 20:22:01 2025 +1100 Disallow casting entirely commit eb02dc6a7b52048281a87924765d9aab1303150f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:24:57 2025 +1100 Replaced components[schemas] outside sdk commit 2f4c1bed56724e4f8a0d586921367604ce127a1a Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:06:38 2025 +1100 removed persons.ts commit ae966db8a330c9f521f3c3cb7417c4f201467661 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:56:27 2025 +1100 Remove casts from sdk commit 42c253021e504b45963834e56551ded55be377f1 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:38:05 2025 +1100 Remove *Like types commit b0a4e21f19005fd69c0e9e16edaa9c10b1ca8567 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:32:26 2025 +1100 Defined quantity construct commit bf4666b89e2d395bdd091ffb6ee66a9cfb866c6d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:27:55 2025 +1100 Moved shopping view-model mapping (DTO → UI groups/meals) into `useShopping` (`mapItemToUI`, `groupsFrom`, `mealsFrom`). - Refactored `CurrentShoppingListPage.vue` to consume composable helpers (less duplication, no local cast-heavy mapping). - Refactored `PurchasedShoppingListPage.vue` to consume composable helpers and return typed SDK result; removed casts. commit e7f84b453509a8fcffbb9923ec001f5be85e67e4 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:17:29 2025 +1100 Removing casts, any, unknown and runtime type checking commit 6346eef4aff4d64b04f7dfa837c5b988645c242c Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:42:14 2025 +1100 domain/decoders.ts: removed casts; `purchaseDate` and `quantity` now trust API shapes. commit 8b62eb9a9f2c0fe058d2dd37cc80071089379c34 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:36:50 2025 +1100 Plan alignment commit dd81fd454b8e14874930cfc44828abddffd50c41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:10:11 2025 +1100 More cast removals commit 377d143ffc8596f46a3b32746d3710d99eb257cd Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:53:30 2025 +1100 Type tightening in sdk commit ce2577f22190b18a52ae0fa4238c6d1beb7e3bb7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:24:51 2025 +1100 All mappers removed/neutralized commit 177205561a2d44aae2683e046960ef5fe8992255 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:20:34 2025 +1100 Replace ingredientnormalized with ingredient commit fc75b24977cc89d420dc768fb4dc4ade84ed32c2 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:16:03 2025 +1100 More type safety tweaks and changes commit c35cc2d3d58307290bbc2d5978baa48c1eda97b6 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:46:13 2025 +1100 Update vue-tsc commit 2cd429804ca34a42c83ea81a3ae68e2cfccb5e36 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:28:01 2025 +1100 Ongoing SDK changes to tighten datatypes commit e11847ae515eadf1bd33e88e154125fe361a5191 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:31:03 2025 +1100 Enforce template type checking commit 777b8dee7e9ef0807a2b2c039443920671fe9c2d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:28:52 2025 +1100 Boilerplate Collapse mappers to “decoders” and delete ad‑hoc view types commit 4169c69d59cc16a24298351c38a60b4d4845f0c9 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:25:04 2025 +1100 Plan updates commit de65164c91d9dc641ec86424bd4fe40f91bb4ada Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:16:37 2025 +1100 More camelCase changes commit 4121c2157511f706b4704c5d5f769034d9bce5a0 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:00:48 2025 +1100 Remove unused js shims and autoformat project commit d475565529bd0c12f06f85f0bcbf19c857176fa7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:59:10 2025 +1100 camelCase conversions and api type propogation commit 7b3b633a9d21c74977d4de120138fff192faaa78 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:11:22 2025 +1100 Strategise ts improvements commit 9396e4928abcf9d8a74a656ad21913f95e8e3e41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:06:19 2025 +1100 Linting errors commit 528fa3bc2f6c42de6de37d9593d2ed31630d0e81 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:59:21 2025 +1100 Recipe search pagination commit 4993c3e53f540e098f3275715c86754dee9392af Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:33:13 2025 +1100 Removed redundant nonnull check commit c03d0b582d0a8b17e675cdf9bdab09eac4091d44 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:29:57 2025 +1100 Persons api pagination commit 67008b4a94a90295ed811594ca0e7f37c80a8305 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:44:32 2025 +1100 ts pages starting to work commit 0144e7f70d19289007d6b035594786ce573cbc70 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:39:17 2025 +1100 More typescript fixes commit dc429f84b48ca5892c6043db81b89fa6431d872d Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:28:54 2025 +1100 5) API client and codegen guardrails — DONE (scripts) / PARTIAL (CI wiring) commit 36ba555d9a600ca8cca4c18571e0d96584243556 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:26:30 2025 +1100 Tighten composable and UI types (remove last anys) — DONE commit 97523a9ef6aa972497e62d63c6f666453bb7eefc Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:24:11 2025 +1100 Align OpenAPI params to remove residual casts, Strengthen MSW tests for the typed client commit 608f6b751cb982487e90560792aec33317981c60 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:14:11 2025 +1100 ts complete, rerun codegen commit ca28376ed7bcb4ff4c7669210ce6eebfd9cb6eaa Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:09:29 2025 +1100 Document All JS under `src/` is now removed; the source tree is TS-only. commit ff3338b108bbf094f987302a21f1779d8f23368f Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:59:49 2025 +1100 Ts tests commit ce4555a279c715f427f9d00c346561efd74705f8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:56:18 2025 +1100 Completed Generate real OpenAPI types and wire them commit b7304aa7390f33a372acda46c593d6592aabf3f7 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:02:27 2025 +1100 DatePicker ts conversion commit cb6ebdba286d44dbaae522ee29d95aa3ccfb5dc1 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:56:38 2025 +1100 Removed js files commit 549eefd369499e0a1d35ff88a659c8aecd955a02 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:49:31 2025 +1100 - Utilities converted to TS: `src/dateformats.ts`, `src/units.ts`; imports updated accordingly. - Router converted to TS: `src/router/index.ts`; legacy `index.js` removed. commit 6f7731287f4166df5c02164ec4220e370c6d7a35 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:48:58 2025 +1100 alerts ts conversion commit 4b1baec85a74b75e94d2392fea3b5abee294089c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:27:35 2025 +1100 use v1 api commit da11976b96d791935cb16c7b1fdb074a2c87f53c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:18:17 2025 +1100 - Shopping pages converted to TS: `MyShoppingPage.vue`, `CurrentShoppingListPage.vue`, `PurchasedShoppingListPage.vue` (typed refs/computed; stable keys; wired to helpers). commit acf740380bf53386e12e108ba09a507141176733 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:08:22 2025 +1100 Shopping MyShoppingPage converted to TS with typed refs. commit 744d7e792d013f0ed04f11280f3351950925beee Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:05:19 2025 +1100 Shopping gets types commit 4e576dca94424383bdf753403d7764e22a28f377 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:57:50 2025 +1100 Error tests commit ac6ae41b840c30196a370a077e02953c63977908 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:56:20 2025 +1100 More datatypes commit d7ea6538b1af6144933a2603d330cb17e04809db Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:45:49 2025 +1100 spec updates commit 0d6cfc1328df8ab4a4baf8f31a7a4e1ea50fd850 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:44:34 2025 +1100 `codegen:check` warns when backend spec is newer than generated types commit 54bff353b8e7429961364803300b38bc70f963c2 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:42:24 2025 +1100 PersonList ts commit e5ffcdde7e9538525704581a82606261596d31f5 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:40:53 2025 +1100 MealCard ts commit 5432d8333c023b0c6e25c9a6ac31519c818e6a58 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:39:29 2025 +1100 ue CLI now serves/builds with TypeScript entry, ESLint configured to parse TS, use ts code commit aba3fd532550a90adeb957b4ddbb43798bcf9e5a Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:23:16 2025 +1100 composables typescript commit 28ba44cc951fddfe64c386e77a91c2f46060cfb8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:19:09 2025 +1100 let the typescriptin begin commit 98e57e4d65cecdd1ed5ed3fbf6b1ebf46ae6af10 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:13:58 2025 +1100 Added typescript
2025-10-19 13:12:40 +00:00
Testing and tooling
- Vitest + MSW under `tests/`
- ESLint (type-aware) + Prettier + Volar
2025-10-18 03:06:24 +00:00
---
## Development tips
Squashed commit of the following: commit a94394866d9e957693c7380b846cfee98739b8be Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:11:28 2025 +1100 Ran codegen commit affaa0e4a80edbb5185f06b3a252e1790e349ee3 Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:09:36 2025 +1100 Moved shopping.ts into composable commit 83ced27a549784a35fa2715630d6fdca7f12f4aa Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 23:43:09 2025 +1100 Purchase fixed commit 2fff14016eedaeb773c0f8b4ee9ccf08a1027449 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:54:36 2025 +1100 typescript migration complete commit 17651bcc8b0f40ac1579563379c8fc45aba1997d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:38:22 2025 +1100 Removing redundant null checks and type checking commit 0cc3a508cd5c7d723eb76d665443b4d0fdad493f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:30:52 2025 +1100 Moving date to sdk layer commit 35d1189009b27876dd167f353c04f217b7c2805e Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:42:47 2025 +1100 No components re-parse dates already decoded by the boundary. commit c4b82a31fad75bd5ec987847847076b537d35a7d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:09:03 2025 +1100 Update spec and types commit 55984bf7c9d51e76eaa6713a3ca86e9a73eb6b03 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 20:22:01 2025 +1100 Disallow casting entirely commit eb02dc6a7b52048281a87924765d9aab1303150f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:24:57 2025 +1100 Replaced components[schemas] outside sdk commit 2f4c1bed56724e4f8a0d586921367604ce127a1a Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:06:38 2025 +1100 removed persons.ts commit ae966db8a330c9f521f3c3cb7417c4f201467661 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:56:27 2025 +1100 Remove casts from sdk commit 42c253021e504b45963834e56551ded55be377f1 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:38:05 2025 +1100 Remove *Like types commit b0a4e21f19005fd69c0e9e16edaa9c10b1ca8567 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:32:26 2025 +1100 Defined quantity construct commit bf4666b89e2d395bdd091ffb6ee66a9cfb866c6d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:27:55 2025 +1100 Moved shopping view-model mapping (DTO → UI groups/meals) into `useShopping` (`mapItemToUI`, `groupsFrom`, `mealsFrom`). - Refactored `CurrentShoppingListPage.vue` to consume composable helpers (less duplication, no local cast-heavy mapping). - Refactored `PurchasedShoppingListPage.vue` to consume composable helpers and return typed SDK result; removed casts. commit e7f84b453509a8fcffbb9923ec001f5be85e67e4 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:17:29 2025 +1100 Removing casts, any, unknown and runtime type checking commit 6346eef4aff4d64b04f7dfa837c5b988645c242c Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:42:14 2025 +1100 domain/decoders.ts: removed casts; `purchaseDate` and `quantity` now trust API shapes. commit 8b62eb9a9f2c0fe058d2dd37cc80071089379c34 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:36:50 2025 +1100 Plan alignment commit dd81fd454b8e14874930cfc44828abddffd50c41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:10:11 2025 +1100 More cast removals commit 377d143ffc8596f46a3b32746d3710d99eb257cd Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:53:30 2025 +1100 Type tightening in sdk commit ce2577f22190b18a52ae0fa4238c6d1beb7e3bb7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:24:51 2025 +1100 All mappers removed/neutralized commit 177205561a2d44aae2683e046960ef5fe8992255 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:20:34 2025 +1100 Replace ingredientnormalized with ingredient commit fc75b24977cc89d420dc768fb4dc4ade84ed32c2 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:16:03 2025 +1100 More type safety tweaks and changes commit c35cc2d3d58307290bbc2d5978baa48c1eda97b6 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:46:13 2025 +1100 Update vue-tsc commit 2cd429804ca34a42c83ea81a3ae68e2cfccb5e36 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:28:01 2025 +1100 Ongoing SDK changes to tighten datatypes commit e11847ae515eadf1bd33e88e154125fe361a5191 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:31:03 2025 +1100 Enforce template type checking commit 777b8dee7e9ef0807a2b2c039443920671fe9c2d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:28:52 2025 +1100 Boilerplate Collapse mappers to “decoders” and delete ad‑hoc view types commit 4169c69d59cc16a24298351c38a60b4d4845f0c9 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:25:04 2025 +1100 Plan updates commit de65164c91d9dc641ec86424bd4fe40f91bb4ada Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:16:37 2025 +1100 More camelCase changes commit 4121c2157511f706b4704c5d5f769034d9bce5a0 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:00:48 2025 +1100 Remove unused js shims and autoformat project commit d475565529bd0c12f06f85f0bcbf19c857176fa7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:59:10 2025 +1100 camelCase conversions and api type propogation commit 7b3b633a9d21c74977d4de120138fff192faaa78 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:11:22 2025 +1100 Strategise ts improvements commit 9396e4928abcf9d8a74a656ad21913f95e8e3e41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:06:19 2025 +1100 Linting errors commit 528fa3bc2f6c42de6de37d9593d2ed31630d0e81 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:59:21 2025 +1100 Recipe search pagination commit 4993c3e53f540e098f3275715c86754dee9392af Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:33:13 2025 +1100 Removed redundant nonnull check commit c03d0b582d0a8b17e675cdf9bdab09eac4091d44 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:29:57 2025 +1100 Persons api pagination commit 67008b4a94a90295ed811594ca0e7f37c80a8305 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:44:32 2025 +1100 ts pages starting to work commit 0144e7f70d19289007d6b035594786ce573cbc70 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:39:17 2025 +1100 More typescript fixes commit dc429f84b48ca5892c6043db81b89fa6431d872d Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:28:54 2025 +1100 5) API client and codegen guardrails — DONE (scripts) / PARTIAL (CI wiring) commit 36ba555d9a600ca8cca4c18571e0d96584243556 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:26:30 2025 +1100 Tighten composable and UI types (remove last anys) — DONE commit 97523a9ef6aa972497e62d63c6f666453bb7eefc Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:24:11 2025 +1100 Align OpenAPI params to remove residual casts, Strengthen MSW tests for the typed client commit 608f6b751cb982487e90560792aec33317981c60 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:14:11 2025 +1100 ts complete, rerun codegen commit ca28376ed7bcb4ff4c7669210ce6eebfd9cb6eaa Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:09:29 2025 +1100 Document All JS under `src/` is now removed; the source tree is TS-only. commit ff3338b108bbf094f987302a21f1779d8f23368f Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:59:49 2025 +1100 Ts tests commit ce4555a279c715f427f9d00c346561efd74705f8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:56:18 2025 +1100 Completed Generate real OpenAPI types and wire them commit b7304aa7390f33a372acda46c593d6592aabf3f7 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:02:27 2025 +1100 DatePicker ts conversion commit cb6ebdba286d44dbaae522ee29d95aa3ccfb5dc1 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:56:38 2025 +1100 Removed js files commit 549eefd369499e0a1d35ff88a659c8aecd955a02 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:49:31 2025 +1100 - Utilities converted to TS: `src/dateformats.ts`, `src/units.ts`; imports updated accordingly. - Router converted to TS: `src/router/index.ts`; legacy `index.js` removed. commit 6f7731287f4166df5c02164ec4220e370c6d7a35 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:48:58 2025 +1100 alerts ts conversion commit 4b1baec85a74b75e94d2392fea3b5abee294089c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:27:35 2025 +1100 use v1 api commit da11976b96d791935cb16c7b1fdb074a2c87f53c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:18:17 2025 +1100 - Shopping pages converted to TS: `MyShoppingPage.vue`, `CurrentShoppingListPage.vue`, `PurchasedShoppingListPage.vue` (typed refs/computed; stable keys; wired to helpers). commit acf740380bf53386e12e108ba09a507141176733 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:08:22 2025 +1100 Shopping MyShoppingPage converted to TS with typed refs. commit 744d7e792d013f0ed04f11280f3351950925beee Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:05:19 2025 +1100 Shopping gets types commit 4e576dca94424383bdf753403d7764e22a28f377 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:57:50 2025 +1100 Error tests commit ac6ae41b840c30196a370a077e02953c63977908 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:56:20 2025 +1100 More datatypes commit d7ea6538b1af6144933a2603d330cb17e04809db Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:45:49 2025 +1100 spec updates commit 0d6cfc1328df8ab4a4baf8f31a7a4e1ea50fd850 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:44:34 2025 +1100 `codegen:check` warns when backend spec is newer than generated types commit 54bff353b8e7429961364803300b38bc70f963c2 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:42:24 2025 +1100 PersonList ts commit e5ffcdde7e9538525704581a82606261596d31f5 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:40:53 2025 +1100 MealCard ts commit 5432d8333c023b0c6e25c9a6ac31519c818e6a58 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:39:29 2025 +1100 ue CLI now serves/builds with TypeScript entry, ESLint configured to parse TS, use ts code commit aba3fd532550a90adeb957b4ddbb43798bcf9e5a Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:23:16 2025 +1100 composables typescript commit 28ba44cc951fddfe64c386e77a91c2f46060cfb8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:19:09 2025 +1100 let the typescriptin begin commit 98e57e4d65cecdd1ed5ed3fbf6b1ebf46ae6af10 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:13:58 2025 +1100 Added typescript
2025-10-19 13:12:40 +00:00
- Prefer composables for shared logic; keep components thin.
2025-10-18 03:06:24 +00:00
- Use computed for derived values; avoid mutating props directly.
Squashed commit of the following: commit a94394866d9e957693c7380b846cfee98739b8be Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:11:28 2025 +1100 Ran codegen commit affaa0e4a80edbb5185f06b3a252e1790e349ee3 Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:09:36 2025 +1100 Moved shopping.ts into composable commit 83ced27a549784a35fa2715630d6fdca7f12f4aa Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 23:43:09 2025 +1100 Purchase fixed commit 2fff14016eedaeb773c0f8b4ee9ccf08a1027449 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:54:36 2025 +1100 typescript migration complete commit 17651bcc8b0f40ac1579563379c8fc45aba1997d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:38:22 2025 +1100 Removing redundant null checks and type checking commit 0cc3a508cd5c7d723eb76d665443b4d0fdad493f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:30:52 2025 +1100 Moving date to sdk layer commit 35d1189009b27876dd167f353c04f217b7c2805e Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:42:47 2025 +1100 No components re-parse dates already decoded by the boundary. commit c4b82a31fad75bd5ec987847847076b537d35a7d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:09:03 2025 +1100 Update spec and types commit 55984bf7c9d51e76eaa6713a3ca86e9a73eb6b03 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 20:22:01 2025 +1100 Disallow casting entirely commit eb02dc6a7b52048281a87924765d9aab1303150f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:24:57 2025 +1100 Replaced components[schemas] outside sdk commit 2f4c1bed56724e4f8a0d586921367604ce127a1a Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:06:38 2025 +1100 removed persons.ts commit ae966db8a330c9f521f3c3cb7417c4f201467661 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:56:27 2025 +1100 Remove casts from sdk commit 42c253021e504b45963834e56551ded55be377f1 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:38:05 2025 +1100 Remove *Like types commit b0a4e21f19005fd69c0e9e16edaa9c10b1ca8567 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:32:26 2025 +1100 Defined quantity construct commit bf4666b89e2d395bdd091ffb6ee66a9cfb866c6d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:27:55 2025 +1100 Moved shopping view-model mapping (DTO → UI groups/meals) into `useShopping` (`mapItemToUI`, `groupsFrom`, `mealsFrom`). - Refactored `CurrentShoppingListPage.vue` to consume composable helpers (less duplication, no local cast-heavy mapping). - Refactored `PurchasedShoppingListPage.vue` to consume composable helpers and return typed SDK result; removed casts. commit e7f84b453509a8fcffbb9923ec001f5be85e67e4 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:17:29 2025 +1100 Removing casts, any, unknown and runtime type checking commit 6346eef4aff4d64b04f7dfa837c5b988645c242c Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:42:14 2025 +1100 domain/decoders.ts: removed casts; `purchaseDate` and `quantity` now trust API shapes. commit 8b62eb9a9f2c0fe058d2dd37cc80071089379c34 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:36:50 2025 +1100 Plan alignment commit dd81fd454b8e14874930cfc44828abddffd50c41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:10:11 2025 +1100 More cast removals commit 377d143ffc8596f46a3b32746d3710d99eb257cd Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:53:30 2025 +1100 Type tightening in sdk commit ce2577f22190b18a52ae0fa4238c6d1beb7e3bb7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:24:51 2025 +1100 All mappers removed/neutralized commit 177205561a2d44aae2683e046960ef5fe8992255 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:20:34 2025 +1100 Replace ingredientnormalized with ingredient commit fc75b24977cc89d420dc768fb4dc4ade84ed32c2 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:16:03 2025 +1100 More type safety tweaks and changes commit c35cc2d3d58307290bbc2d5978baa48c1eda97b6 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:46:13 2025 +1100 Update vue-tsc commit 2cd429804ca34a42c83ea81a3ae68e2cfccb5e36 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:28:01 2025 +1100 Ongoing SDK changes to tighten datatypes commit e11847ae515eadf1bd33e88e154125fe361a5191 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:31:03 2025 +1100 Enforce template type checking commit 777b8dee7e9ef0807a2b2c039443920671fe9c2d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:28:52 2025 +1100 Boilerplate Collapse mappers to “decoders” and delete ad‑hoc view types commit 4169c69d59cc16a24298351c38a60b4d4845f0c9 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:25:04 2025 +1100 Plan updates commit de65164c91d9dc641ec86424bd4fe40f91bb4ada Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:16:37 2025 +1100 More camelCase changes commit 4121c2157511f706b4704c5d5f769034d9bce5a0 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:00:48 2025 +1100 Remove unused js shims and autoformat project commit d475565529bd0c12f06f85f0bcbf19c857176fa7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:59:10 2025 +1100 camelCase conversions and api type propogation commit 7b3b633a9d21c74977d4de120138fff192faaa78 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:11:22 2025 +1100 Strategise ts improvements commit 9396e4928abcf9d8a74a656ad21913f95e8e3e41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:06:19 2025 +1100 Linting errors commit 528fa3bc2f6c42de6de37d9593d2ed31630d0e81 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:59:21 2025 +1100 Recipe search pagination commit 4993c3e53f540e098f3275715c86754dee9392af Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:33:13 2025 +1100 Removed redundant nonnull check commit c03d0b582d0a8b17e675cdf9bdab09eac4091d44 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:29:57 2025 +1100 Persons api pagination commit 67008b4a94a90295ed811594ca0e7f37c80a8305 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:44:32 2025 +1100 ts pages starting to work commit 0144e7f70d19289007d6b035594786ce573cbc70 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:39:17 2025 +1100 More typescript fixes commit dc429f84b48ca5892c6043db81b89fa6431d872d Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:28:54 2025 +1100 5) API client and codegen guardrails — DONE (scripts) / PARTIAL (CI wiring) commit 36ba555d9a600ca8cca4c18571e0d96584243556 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:26:30 2025 +1100 Tighten composable and UI types (remove last anys) — DONE commit 97523a9ef6aa972497e62d63c6f666453bb7eefc Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:24:11 2025 +1100 Align OpenAPI params to remove residual casts, Strengthen MSW tests for the typed client commit 608f6b751cb982487e90560792aec33317981c60 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:14:11 2025 +1100 ts complete, rerun codegen commit ca28376ed7bcb4ff4c7669210ce6eebfd9cb6eaa Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:09:29 2025 +1100 Document All JS under `src/` is now removed; the source tree is TS-only. commit ff3338b108bbf094f987302a21f1779d8f23368f Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:59:49 2025 +1100 Ts tests commit ce4555a279c715f427f9d00c346561efd74705f8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:56:18 2025 +1100 Completed Generate real OpenAPI types and wire them commit b7304aa7390f33a372acda46c593d6592aabf3f7 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:02:27 2025 +1100 DatePicker ts conversion commit cb6ebdba286d44dbaae522ee29d95aa3ccfb5dc1 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:56:38 2025 +1100 Removed js files commit 549eefd369499e0a1d35ff88a659c8aecd955a02 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:49:31 2025 +1100 - Utilities converted to TS: `src/dateformats.ts`, `src/units.ts`; imports updated accordingly. - Router converted to TS: `src/router/index.ts`; legacy `index.js` removed. commit 6f7731287f4166df5c02164ec4220e370c6d7a35 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:48:58 2025 +1100 alerts ts conversion commit 4b1baec85a74b75e94d2392fea3b5abee294089c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:27:35 2025 +1100 use v1 api commit da11976b96d791935cb16c7b1fdb074a2c87f53c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:18:17 2025 +1100 - Shopping pages converted to TS: `MyShoppingPage.vue`, `CurrentShoppingListPage.vue`, `PurchasedShoppingListPage.vue` (typed refs/computed; stable keys; wired to helpers). commit acf740380bf53386e12e108ba09a507141176733 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:08:22 2025 +1100 Shopping MyShoppingPage converted to TS with typed refs. commit 744d7e792d013f0ed04f11280f3351950925beee Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:05:19 2025 +1100 Shopping gets types commit 4e576dca94424383bdf753403d7764e22a28f377 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:57:50 2025 +1100 Error tests commit ac6ae41b840c30196a370a077e02953c63977908 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:56:20 2025 +1100 More datatypes commit d7ea6538b1af6144933a2603d330cb17e04809db Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:45:49 2025 +1100 spec updates commit 0d6cfc1328df8ab4a4baf8f31a7a4e1ea50fd850 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:44:34 2025 +1100 `codegen:check` warns when backend spec is newer than generated types commit 54bff353b8e7429961364803300b38bc70f963c2 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:42:24 2025 +1100 PersonList ts commit e5ffcdde7e9538525704581a82606261596d31f5 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:40:53 2025 +1100 MealCard ts commit 5432d8333c023b0c6e25c9a6ac31519c818e6a58 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:39:29 2025 +1100 ue CLI now serves/builds with TypeScript entry, ESLint configured to parse TS, use ts code commit aba3fd532550a90adeb957b4ddbb43798bcf9e5a Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:23:16 2025 +1100 composables typescript commit 28ba44cc951fddfe64c386e77a91c2f46060cfb8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:19:09 2025 +1100 let the typescriptin begin commit 98e57e4d65cecdd1ed5ed3fbf6b1ebf46ae6af10 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:13:58 2025 +1100 Added typescript
2025-10-19 13:12:40 +00:00
- Use discriminated unions for UI-only shapes when helpful (e.g., shopping `Group`).
- Add/adjust tests when changing behavior.
2025-10-18 03:06:24 +00:00
---
2024-01-07 02:40:35 +00:00
2025-10-18 03:06:24 +00:00
## Troubleshooting
2025-10-18 02:08:22 +00:00
2025-10-18 03:06:24 +00:00
- API errors: verify `VUE_APP_API_BASE` is set and reachable.
- Type/IDE help: ensure Volar is enabled and ESLint is not conflicting with Prettier.
- Build issues: this project uses Vue CLI 5. If migrating to Vite, update scripts and configs accordingly.
Squashed commit of the following: commit a94394866d9e957693c7380b846cfee98739b8be Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:11:28 2025 +1100 Ran codegen commit affaa0e4a80edbb5185f06b3a252e1790e349ee3 Author: jableader <jacobdunk@gmail.com> Date: Mon Oct 20 00:09:36 2025 +1100 Moved shopping.ts into composable commit 83ced27a549784a35fa2715630d6fdca7f12f4aa Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 23:43:09 2025 +1100 Purchase fixed commit 2fff14016eedaeb773c0f8b4ee9ccf08a1027449 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:54:36 2025 +1100 typescript migration complete commit 17651bcc8b0f40ac1579563379c8fc45aba1997d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:38:22 2025 +1100 Removing redundant null checks and type checking commit 0cc3a508cd5c7d723eb76d665443b4d0fdad493f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 22:30:52 2025 +1100 Moving date to sdk layer commit 35d1189009b27876dd167f353c04f217b7c2805e Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:42:47 2025 +1100 No components re-parse dates already decoded by the boundary. commit c4b82a31fad75bd5ec987847847076b537d35a7d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 21:09:03 2025 +1100 Update spec and types commit 55984bf7c9d51e76eaa6713a3ca86e9a73eb6b03 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 20:22:01 2025 +1100 Disallow casting entirely commit eb02dc6a7b52048281a87924765d9aab1303150f Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:24:57 2025 +1100 Replaced components[schemas] outside sdk commit 2f4c1bed56724e4f8a0d586921367604ce127a1a Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 19:06:38 2025 +1100 removed persons.ts commit ae966db8a330c9f521f3c3cb7417c4f201467661 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:56:27 2025 +1100 Remove casts from sdk commit 42c253021e504b45963834e56551ded55be377f1 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:38:05 2025 +1100 Remove *Like types commit b0a4e21f19005fd69c0e9e16edaa9c10b1ca8567 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:32:26 2025 +1100 Defined quantity construct commit bf4666b89e2d395bdd091ffb6ee66a9cfb866c6d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:27:55 2025 +1100 Moved shopping view-model mapping (DTO → UI groups/meals) into `useShopping` (`mapItemToUI`, `groupsFrom`, `mealsFrom`). - Refactored `CurrentShoppingListPage.vue` to consume composable helpers (less duplication, no local cast-heavy mapping). - Refactored `PurchasedShoppingListPage.vue` to consume composable helpers and return typed SDK result; removed casts. commit e7f84b453509a8fcffbb9923ec001f5be85e67e4 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 18:17:29 2025 +1100 Removing casts, any, unknown and runtime type checking commit 6346eef4aff4d64b04f7dfa837c5b988645c242c Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:42:14 2025 +1100 domain/decoders.ts: removed casts; `purchaseDate` and `quantity` now trust API shapes. commit 8b62eb9a9f2c0fe058d2dd37cc80071089379c34 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:36:50 2025 +1100 Plan alignment commit dd81fd454b8e14874930cfc44828abddffd50c41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 17:10:11 2025 +1100 More cast removals commit 377d143ffc8596f46a3b32746d3710d99eb257cd Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:53:30 2025 +1100 Type tightening in sdk commit ce2577f22190b18a52ae0fa4238c6d1beb7e3bb7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:24:51 2025 +1100 All mappers removed/neutralized commit 177205561a2d44aae2683e046960ef5fe8992255 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:20:34 2025 +1100 Replace ingredientnormalized with ingredient commit fc75b24977cc89d420dc768fb4dc4ade84ed32c2 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 16:16:03 2025 +1100 More type safety tweaks and changes commit c35cc2d3d58307290bbc2d5978baa48c1eda97b6 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:46:13 2025 +1100 Update vue-tsc commit 2cd429804ca34a42c83ea81a3ae68e2cfccb5e36 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 15:28:01 2025 +1100 Ongoing SDK changes to tighten datatypes commit e11847ae515eadf1bd33e88e154125fe361a5191 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:31:03 2025 +1100 Enforce template type checking commit 777b8dee7e9ef0807a2b2c039443920671fe9c2d Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:28:52 2025 +1100 Boilerplate Collapse mappers to “decoders” and delete ad‑hoc view types commit 4169c69d59cc16a24298351c38a60b4d4845f0c9 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:25:04 2025 +1100 Plan updates commit de65164c91d9dc641ec86424bd4fe40f91bb4ada Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:16:37 2025 +1100 More camelCase changes commit 4121c2157511f706b4704c5d5f769034d9bce5a0 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 14:00:48 2025 +1100 Remove unused js shims and autoformat project commit d475565529bd0c12f06f85f0bcbf19c857176fa7 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:59:10 2025 +1100 camelCase conversions and api type propogation commit 7b3b633a9d21c74977d4de120138fff192faaa78 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:11:22 2025 +1100 Strategise ts improvements commit 9396e4928abcf9d8a74a656ad21913f95e8e3e41 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 13:06:19 2025 +1100 Linting errors commit 528fa3bc2f6c42de6de37d9593d2ed31630d0e81 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:59:21 2025 +1100 Recipe search pagination commit 4993c3e53f540e098f3275715c86754dee9392af Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:33:13 2025 +1100 Removed redundant nonnull check commit c03d0b582d0a8b17e675cdf9bdab09eac4091d44 Author: jableader <jacobdunk@gmail.com> Date: Sun Oct 19 12:29:57 2025 +1100 Persons api pagination commit 67008b4a94a90295ed811594ca0e7f37c80a8305 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:44:32 2025 +1100 ts pages starting to work commit 0144e7f70d19289007d6b035594786ce573cbc70 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 22:39:17 2025 +1100 More typescript fixes commit dc429f84b48ca5892c6043db81b89fa6431d872d Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:28:54 2025 +1100 5) API client and codegen guardrails — DONE (scripts) / PARTIAL (CI wiring) commit 36ba555d9a600ca8cca4c18571e0d96584243556 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:26:30 2025 +1100 Tighten composable and UI types (remove last anys) — DONE commit 97523a9ef6aa972497e62d63c6f666453bb7eefc Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:24:11 2025 +1100 Align OpenAPI params to remove residual casts, Strengthen MSW tests for the typed client commit 608f6b751cb982487e90560792aec33317981c60 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:14:11 2025 +1100 ts complete, rerun codegen commit ca28376ed7bcb4ff4c7669210ce6eebfd9cb6eaa Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 18:09:29 2025 +1100 Document All JS under `src/` is now removed; the source tree is TS-only. commit ff3338b108bbf094f987302a21f1779d8f23368f Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:59:49 2025 +1100 Ts tests commit ce4555a279c715f427f9d00c346561efd74705f8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:56:18 2025 +1100 Completed Generate real OpenAPI types and wire them commit b7304aa7390f33a372acda46c593d6592aabf3f7 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 17:02:27 2025 +1100 DatePicker ts conversion commit cb6ebdba286d44dbaae522ee29d95aa3ccfb5dc1 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:56:38 2025 +1100 Removed js files commit 549eefd369499e0a1d35ff88a659c8aecd955a02 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:49:31 2025 +1100 - Utilities converted to TS: `src/dateformats.ts`, `src/units.ts`; imports updated accordingly. - Router converted to TS: `src/router/index.ts`; legacy `index.js` removed. commit 6f7731287f4166df5c02164ec4220e370c6d7a35 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:48:58 2025 +1100 alerts ts conversion commit 4b1baec85a74b75e94d2392fea3b5abee294089c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:27:35 2025 +1100 use v1 api commit da11976b96d791935cb16c7b1fdb074a2c87f53c Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:18:17 2025 +1100 - Shopping pages converted to TS: `MyShoppingPage.vue`, `CurrentShoppingListPage.vue`, `PurchasedShoppingListPage.vue` (typed refs/computed; stable keys; wired to helpers). commit acf740380bf53386e12e108ba09a507141176733 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:08:22 2025 +1100 Shopping MyShoppingPage converted to TS with typed refs. commit 744d7e792d013f0ed04f11280f3351950925beee Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 16:05:19 2025 +1100 Shopping gets types commit 4e576dca94424383bdf753403d7764e22a28f377 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:57:50 2025 +1100 Error tests commit ac6ae41b840c30196a370a077e02953c63977908 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:56:20 2025 +1100 More datatypes commit d7ea6538b1af6144933a2603d330cb17e04809db Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:45:49 2025 +1100 spec updates commit 0d6cfc1328df8ab4a4baf8f31a7a4e1ea50fd850 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:44:34 2025 +1100 `codegen:check` warns when backend spec is newer than generated types commit 54bff353b8e7429961364803300b38bc70f963c2 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:42:24 2025 +1100 PersonList ts commit e5ffcdde7e9538525704581a82606261596d31f5 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:40:53 2025 +1100 MealCard ts commit 5432d8333c023b0c6e25c9a6ac31519c818e6a58 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:39:29 2025 +1100 ue CLI now serves/builds with TypeScript entry, ESLint configured to parse TS, use ts code commit aba3fd532550a90adeb957b4ddbb43798bcf9e5a Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:23:16 2025 +1100 composables typescript commit 28ba44cc951fddfe64c386e77a91c2f46060cfb8 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:19:09 2025 +1100 let the typescriptin begin commit 98e57e4d65cecdd1ed5ed3fbf6b1ebf46ae6af10 Author: jableader <jacobdunk@gmail.com> Date: Sat Oct 18 15:13:58 2025 +1100 Added typescript
2025-10-19 13:12:40 +00:00
---
## Type checking and codegen
- Type check (TS strict + vue-tsc):
```bash
npm run typecheck
```
- Generate API types (consumed by SDK):
```bash
npm run codegen
```
Environment
- VUE_APP_API_BASE (Vue CLI) or VITE_API_BASE_URL (Vite) for API base URL
Testing
- Unit tests use MSW; the client defaults to a localhost base in tests for easy mocking
2025-10-26 04:13:33 +00:00
### CurrentShoppingList item kinds
The OpenAPI spec models current shopping list items as distinct kinds:
- outstandingItems: ListIngredientItem[]
- requestedMeals: RequestedMealItem[]
- purchasedItems: ListIngredientItem[]
The SDK maps these to a domain DTO (`CurrentShoppingListDTO`) and may attach refs (`ingredient`, `recipe`, `meal`, `list`) for convenience. UI code should:
- Prefer stable IDs (`ingredientId`, `mealId`, `recipeId`, `listId`) for actions and lookups
- Treat attached refs as optional view helpers (never required)
- Keep all normalization at the boundary (decoders); avoid casts and runtime type checks in app code