Обвязка из adopt-project.sh дополнена описанием репозитория по коду: источники истины для фронта, ветка test как интеграционная, правило «запросы только через api/client». .gitignore: исправлена склейка строк (package-lock.json.superpowers/), добавлен dist/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EAKRDNzXtRrwmWz9z6PZu3
1.6 KiB
1.6 KiB
Архитектура arm-web
SPA поверх API arm-core (/api/v1). Своих данных и бизнес-вычислений нет: всё производное (чек-лист, сводная ОСВ,
статусы) считает сервер, фронт показывает и отправляет действия пользователя.
Модули
| Модуль | Ответственность | Зависит от |
|---|---|---|
src/api/ |
HTTP-клиент, токен, разбор ошибок | conf/, auth/token |
src/auth/ |
профиль /me, dev-вход, права для меню |
api/ |
src/services/api/ |
вызовы ресурсов arm-core | api/, types/ |
src/store/ |
состояние экранов (Redux Toolkit) | services/api/ |
src/types/ |
DTO API (повторяют arm-core/api/src/schemas/) |
— |
src/components/ |
примитивы UI (таблица, теги, заголовок) | antd |
src/widgets/ |
блоки экранов | components/, store/, services/api/ |
src/layouts/ |
страницы-маршруты | widgets/ |
Границы
- Сетевые запросы — только через
src/api/client.ts;fetchнапрямую не вызывается. components/не знают про store и API;types/ни от чего не зависят.services/api/mocks.tsне импортируется из рабочих путей.
Открытые вопросы
- Судьба
arm-core/web(дубль основы этого репозитория) — решает владелец.