27 lines
1.1 KiB
Markdown
27 lines
1.1 KiB
Markdown
# Refactoring Round 2 — Design
|
|
|
|
> 2026-05-19
|
|
|
|
## Phase 1: Toolchain & Configs
|
|
|
|
1. Enable `strict: true` in `client/tsconfig.app.json`
|
|
2. Add ESLint + Prettier to server (copy rules from client, adapt for JS)
|
|
3. Remove dead configs: `server/vitest.config.ts` (duplicate of `.js`)
|
|
4. Fix AGENTS.md: `dev` uses `.env` not `.dev_env`; add `db:reset:test` to server
|
|
5. Clean .gitignore: remove `.opencode/plans/` reference
|
|
|
|
## Phase 2: Deduplication & Separation
|
|
|
|
1. Move order status transition logic to `shared/constants/order.js` as shared data
|
|
2. Split `entities/product/api/product-api.ts` into public + admin API files
|
|
3. Consolidate review API into `entities/review/`
|
|
4. Move delivery-carrier labels into `shared/constants/delivery-carrier.js`
|
|
5. Add `db:reset:test` script to `server/package.json`
|
|
|
|
## Phase 3: Large File Decomposition
|
|
|
|
1. `AdminProductsPage.tsx` (596 lines) → `features/product-form/` + table page
|
|
2. `AdminOrdersPage.tsx` (398 lines) → `features/order-detail/` + table page
|
|
3. `AddressesPage.tsx` (318 lines) → `features/address-form/` + list page
|
|
4. `ProductPage.tsx` (304 lines) → extend `widgets/reviews-block/`
|