@morda-dev/create-sdk 1.0.1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -0
- package/bin/create-sdk.js +185 -31
- package/package.json +14 -4
- package/template/.github/workflows/ci.yml +30 -35
- package/template/api-extractor.json +6 -6
- package/template/etc/project-template.api.md +32 -32
- package/template/package.json +14 -5
- package/template/src/index.ts +8 -2
- package/template/src/modules/user.ts +23 -4
- package/template/src/types/user.ts +11 -3
- package/template/.editorconfig +0 -0
- package/template/.github/CODEOWNERS +0 -2
- package/template/.github/ISSUE_TEMPLATE/bug_report.md +0 -35
- package/template/.github/ISSUE_TEMPLATE/feature_request.md +0 -26
- package/template/.github/dependabot.yml +0 -18
- package/template/.github/pull_request_template.md +0 -25
- package/template/.github/workflows/auto-release.yml +0 -77
- package/template/.github/workflows/deploy-pages.yml +0 -73
- package/template/.github/workflows/docs-ci.yml +0 -38
- package/template/.github/workflows/docs.yml +0 -19
- package/template/.github/workflows/release.yml +0 -51
- package/template/.husky/commit-msg +0 -4
- package/template/.husky/pre-commit +0 -4
- package/template/.prettierrc +0 -0
- package/template/CHANGELOG.md +0 -49
- package/template/CODE_OF_CONDUCT.md +0 -40
- package/template/CONTRIBUTING.md +0 -38
- package/template/SECURITY.md +0 -16
- package/template/TEST_DEPLOY.md +0 -0
- package/template/ci-cd.md +0 -93
- package/template/commitlint.config.cjs +0 -3
- package/template/coverage/base.css +0 -224
- package/template/coverage/block-navigation.js +0 -87
- package/template/coverage/clover.xml +0 -6
- package/template/coverage/coverage-final.json +0 -1
- package/template/coverage/favicon.png +0 -0
- package/template/coverage/index.html +0 -101
- package/template/coverage/prettify.css +0 -1
- package/template/coverage/prettify.js +0 -2
- package/template/coverage/sort-arrow-sprite.png +0 -0
- package/template/coverage/sorter.js +0 -210
- package/template/docs/api/README.md +0 -5
- package/template/docs/api-auto/README.md +0 -5
- package/template/docs/index.html +0 -73
- package/template/docs/index.md +0 -28
- package/template/docusaurus-build/.github/workflows/deploy-docs.yml +0 -46
- package/template/docusaurus-build/.github/workflows/deploy-pages.yml +0 -43
- package/template/docusaurus-build/README.md +0 -44
- package/template/docusaurus-build/blog/authors.yml +0 -34
- package/template/docusaurus-build/blog/hello-world.md +0 -9
- package/template/docusaurus-build/docs/ci-cd.md +0 -62
- package/template/docusaurus-build/docs/conventions.md +0 -50
- package/template/docusaurus-build/docs/folder-structure.md +0 -24
- package/template/docusaurus-build/docs/getting-started.md +0 -24
- package/template/docusaurus-build/docs/intro.md +0 -14
- package/template/docusaurus-build/docs/project-architecture.md +0 -125
- package/template/docusaurus-build/docs/project-template/architecture.md +0 -82
- package/template/docusaurus-build/docs/project-template/getting-started.md +0 -24
- package/template/docusaurus-build/docs/project-template/overview.md +0 -78
- package/template/docusaurus-build/docs/project-template/structure.md +0 -145
- package/template/docusaurus-build/docs/scripts.md +0 -42
- package/template/docusaurus-build/docs/testing.md +0 -30
- package/template/docusaurus-build/docusaurus-build/sidebars.ts +0 -30
- package/template/docusaurus-build/docusaurus-build/tsconfig.json +0 -8
- package/template/docusaurus-build/docusaurus-build/typedoc.tsconfig.json +0 -28
- package/template/docusaurus-build/docusaurus.config.ts +0 -129
- package/template/docusaurus-build/package-lock.json +0 -18235
- package/template/docusaurus-build/package.json +0 -51
- package/template/docusaurus-build/project-template/README.md +0 -44
- package/template/docusaurus-build/project-template/src/index.ts +0 -4
- package/template/docusaurus-build/project-template/src/modules/user.ts +0 -20
- package/template/docusaurus-build/project-template/src/types/user.ts +0 -5
- package/template/docusaurus-build/sidebars.ts +0 -20
- package/template/docusaurus-build/src/components/HomepageFeatures/index.tsx +0 -71
- package/template/docusaurus-build/src/components/HomepageFeatures/styles.module.css +0 -11
- package/template/docusaurus-build/src/css/custom.css +0 -30
- package/template/docusaurus-build/src/pages/index.module.css +0 -23
- package/template/docusaurus-build/src/pages/index.tsx +0 -52
- package/template/docusaurus-build/src/pages/markdown-page.md +0 -7
- package/template/docusaurus-build/static/.nojekyll +0 -0
- package/template/docusaurus-build/static/api/.nojekyll +0 -1
- package/template/docusaurus-build/static/api/assets/hierarchy.js +0 -1
- package/template/docusaurus-build/static/api/assets/highlight.css +0 -22
- package/template/docusaurus-build/static/api/assets/icons.js +0 -18
- package/template/docusaurus-build/static/api/assets/icons.svg +0 -1
- package/template/docusaurus-build/static/api/assets/main.js +0 -60
- package/template/docusaurus-build/static/api/assets/navigation.js +0 -1
- package/template/docusaurus-build/static/api/assets/search.js +0 -1
- package/template/docusaurus-build/static/api/assets/style.css +0 -1633
- package/template/docusaurus-build/static/api/functions/modules_user.getUser.html +0 -1
- package/template/docusaurus-build/static/api/functions/modules_user.sumAges.html +0 -1
- package/template/docusaurus-build/static/api/hierarchy.html +0 -1
- package/template/docusaurus-build/static/api/index.html +0 -1
- package/template/docusaurus-build/static/api/modules/index.html +0 -1
- package/template/docusaurus-build/static/api/modules/modules_user.html +0 -1
- package/template/docusaurus-build/static/api/modules/types_user.html +0 -1
- package/template/docusaurus-build/static/api/types/types_user.ApiResult.html +0 -3
- package/template/docusaurus-build/static/api/types/types_user.User.html +0 -4
- package/template/docusaurus-build/static/img/docusaurus-social-card.jpg +0 -0
- package/template/docusaurus-build/static/img/docusaurus.png +0 -0
- package/template/docusaurus-build/static/img/favicon.ico +0 -0
- package/template/docusaurus-build/static/img/logo.svg +0 -1
- package/template/docusaurus-build/static/img/undraw_docusaurus_mountain.svg +0 -171
- package/template/docusaurus-build/static/img/undraw_docusaurus_react.svg +0 -170
- package/template/docusaurus-build/static/img/undraw_docusaurus_tree.svg +0 -40
- package/template/docusaurus-build/tsconfig.json +0 -8
- package/template/docusaurus-build/typedoc.json +0 -14
- package/template/docusaurus-build/typedoc.tsconfig.json +0 -7
- package/template/eslint.config.mjs +0 -72
- package/template/morda-dev-project-template-0.1.1.tgz +0 -0
- package/template/package-lock.json +0 -45
- package/template/scripts/commitlint-runner.mjs +0 -10
- package/template/test.ts +0 -4
- package/template/tests/example.test.js +0 -3
- package/template/tests/public-api.snapshot.test.ts +0 -13
- package/template/tests/public-api.test.ts +0 -58
- package/template/tests/user.test.ts +0 -16
- package/template/tsconfig.eslint.json +0 -14
- package/template/typedoc.json +0 -6
- package/template/vitest.config.ts +0 -12
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 5
|
|
3
|
-
title: Архитектура проекта
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 🏛 Архитектура проекта
|
|
7
|
-
|
|
8
|
-
Архитектура основана на принципах Clean Architecture, SOLID, и чётком разделении ответственности между слоями.
|
|
9
|
-
Это обеспечивает масштабируемость, лёгкость поддержки и предсказуемость поведения системы.
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## 🎯 Основная идея
|
|
14
|
-
|
|
15
|
-
Все зависимости в проекте направлены внутрь, к бизнес-логике.
|
|
16
|
-
Это позволяет:
|
|
17
|
-
|
|
18
|
-
- заменять инфраструктурные детали без переписывания логики
|
|
19
|
-
- тестировать систему в изоляции
|
|
20
|
-
- поддерживать стабильную внутреннюю структуру
|
|
21
|
-
- гарантировать, что логика не зависит от внешних библиотек
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## 🧩 Архитектурные слои
|
|
26
|
-
┌────────────────────────────────────────┐ │ Presentation Layer │ ← UI, CLI, API Endpoints └────────────────────────────────────────┘ ↓ зависимость внутрь ┌────────────────────────────────────────┐ │ Application Layer │ ← use-cases, services └────────────────────────────────────────┘ ↓ зависимость внутрь ┌────────────────────────────────────────┐ │ Domain Layer │ ← бизнес-логика, сущности └────────────────────────────────────────┘ ↓ зависимость внутрь ┌────────────────────────────────────────┐ │ Infrastructure Layer │ ← имплементации API, БД └────────────────────────────────────────┘
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## 📦 Domain Layer (ядро)
|
|
31
|
-
|
|
32
|
-
Содержит:
|
|
33
|
-
- сущности (Entities)
|
|
34
|
-
- бизнес-правила
|
|
35
|
-
- value objects
|
|
36
|
-
- доменные сервисы
|
|
37
|
-
|
|
38
|
-
Особенности:
|
|
39
|
-
- не зависит ни от одного слоя
|
|
40
|
-
- чистый TypeScript
|
|
41
|
-
- легко тестируется
|
|
42
|
-
- стабилен долгие годы
|
|
43
|
-
|
|
44
|
-
---
|
|
45
|
-
## ⚙️ Application Layer (use-cases)
|
|
46
|
-
|
|
47
|
-
Содержит:
|
|
48
|
-
- сценарии использования (Use Cases)
|
|
49
|
-
- application-services
|
|
50
|
-
- входные и выходные DTO
|
|
51
|
-
|
|
52
|
-
Особенности:
|
|
53
|
-
- содержит бизнес-процессы (но НЕ бизнес-логику)
|
|
54
|
-
- зависит только от Domain Layer
|
|
55
|
-
- не знает ничего о БД, HTTP и UI
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## 🌐 Infrastructure Layer
|
|
60
|
-
|
|
61
|
-
Содержит:
|
|
62
|
-
- API-клиенты
|
|
63
|
-
- репозитории
|
|
64
|
-
- базы данных
|
|
65
|
-
- интеграции
|
|
66
|
-
- логирование
|
|
67
|
-
- адаптеры
|
|
68
|
-
|
|
69
|
-
Особенности:
|
|
70
|
-
- знает детали работы внешних сервисов
|
|
71
|
-
- меняется чаще всех
|
|
72
|
-
- подменяется моками в тестах
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## 🖥 Presentation Layer
|
|
77
|
-
|
|
78
|
-
Содержит:
|
|
79
|
-
- CLI
|
|
80
|
-
- REST API endpoints
|
|
81
|
-
- UI (если есть)
|
|
82
|
-
- слой взаимодействия с пользователем
|
|
83
|
-
|
|
84
|
-
Особенности:
|
|
85
|
-
- преобразует запросы → вызывает use-cases → возвращает результат
|
|
86
|
-
- не содержит логики
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
## 🧪 Как архитектура упрощает тесты?
|
|
90
|
-
|
|
91
|
-
- Domain тестируется отдельно
|
|
92
|
-
- Application тестируется через изолированные сценарии
|
|
93
|
-
- Infrastructure мокаем
|
|
94
|
-
- Presentation тестируется минимально
|
|
95
|
-
|
|
96
|
-
Результат:
|
|
97
|
-
- быстрые тесты
|
|
98
|
-
- надёжная логика
|
|
99
|
-
- минимальная связность слоёв
|
|
100
|
-
|
|
101
|
-
---
|
|
102
|
-
|
|
103
|
-
## 🚀 Преимущества выбранной архитектуры
|
|
104
|
-
|
|
105
|
-
- Масштабируемость без боли
|
|
106
|
-
- Чёткое разделение ответственности
|
|
107
|
-
- Простота для новых разработчиков
|
|
108
|
-
- Минимальная связность
|
|
109
|
-
- Лёгкая смена технологий (БД, API, UI)
|
|
110
|
-
- Строгая типизация на всех уровнях
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## 💬 Почему это важно?
|
|
115
|
-
|
|
116
|
-
Потому что этот template — основа для production-уровня проекта, который должен развиваться годами.
|
|
117
|
-
|
|
118
|
-
Такая архитектура обеспечивает:
|
|
119
|
-
- предсказуемость
|
|
120
|
-
- стабильность
|
|
121
|
-
- гибкость
|
|
122
|
-
- контроль качества
|
|
123
|
-
|
|
124
|
-
Это фундамент всей экосистемы, которую мы сейчас строим.
|
|
125
|
-
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Архитектура проекта
|
|
3
|
-
sidebar_label: Architecture
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Архитектура Project Template
|
|
7
|
-
|
|
8
|
-
Документ описывает основные принципы архитектуры, используемые слои, связи между компонентами, а также общий подход к организации проекта.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Основные принципы
|
|
13
|
-
|
|
14
|
-
- **KISS** — проект должен быть простым для понимания и расширения.
|
|
15
|
-
- **SOLID** — разбиваем функциональность на независимые модули.
|
|
16
|
-
- **DRY** — избегаем дублирования логики.
|
|
17
|
-
- **YAGNI** — реализуем только реально используемую функциональность.
|
|
18
|
-
- **Чёткое разделение ответственности**.
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Архитектурные слои
|
|
23
|
-
|
|
24
|
-
Структура проекта организована по слоям:
|
|
25
|
-
|
|
26
|
-
### 1. **Presentation Layer**
|
|
27
|
-
- HTTP endpoints
|
|
28
|
-
- контроллеры
|
|
29
|
-
- адаптеры входящих запросов
|
|
30
|
-
- валидация входящих данных
|
|
31
|
-
|
|
32
|
-
### 2. **Application Layer**
|
|
33
|
-
- Use Cases
|
|
34
|
-
- сервисы оркестрации бизнес-логики
|
|
35
|
-
- обработчики команд
|
|
36
|
-
- работа с DTO
|
|
37
|
-
|
|
38
|
-
### 3. **Domain Layer**
|
|
39
|
-
- бизнес-модели
|
|
40
|
-
- правила предметной области
|
|
41
|
-
- интерфейсы репозиториев
|
|
42
|
-
- чистая бизнес-логика
|
|
43
|
-
|
|
44
|
-
### 4. **Infrastructure Layer**
|
|
45
|
-
- реальные реализации репозиториев
|
|
46
|
-
- работа с внешними API
|
|
47
|
-
- интеграции
|
|
48
|
-
- клиенты БД
|
|
49
|
-
- логирование
|
|
50
|
-
- конфигурация окружения
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Диаграмма архитектурных слоёв
|
|
55
|
-
|
|
56
|
-
```mermaid
|
|
57
|
-
flowchart TD
|
|
58
|
-
|
|
59
|
-
A[Presentation Layer] --> B[Application Layer]
|
|
60
|
-
B[Application Layer] --> C[Domain Layer]
|
|
61
|
-
C[Domain Layer] --> D[Infrastructure Layer]
|
|
62
|
-
|
|
63
|
-
A -.-> C
|
|
64
|
-
B -.-> D
|
|
65
|
-
## Поток данных в системе
|
|
66
|
-
|
|
67
|
-
```mermaid
|
|
68
|
-
sequenceDiagram
|
|
69
|
-
participant User as Client/User
|
|
70
|
-
participant API as API Layer
|
|
71
|
-
participant App as Application
|
|
72
|
-
participant Domain as Domain Logic
|
|
73
|
-
participant Infra as Infrastructure
|
|
74
|
-
|
|
75
|
-
User->>API: HTTP Request
|
|
76
|
-
API->>App: Вызов Use Case / Handler
|
|
77
|
-
App->>Domain: Проверка правил / моделирование
|
|
78
|
-
Domain->>Infra: Запрос к внешним ресурсам / данным
|
|
79
|
-
Infra-->>Domain: Результат / данные
|
|
80
|
-
Domain-->>App: Валидированный результат
|
|
81
|
-
App-->>API: Формирование ответа
|
|
82
|
-
API-->>User: HTTP Response
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Getting Started
|
|
3
|
-
sidebar_label: Getting Started
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Getting Started
|
|
7
|
-
|
|
8
|
-
Документ описывает, как запустить и настроить проект с нуля.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Требования перед началом
|
|
13
|
-
|
|
14
|
-
Для корректной работы шаблона необходимо установить:
|
|
15
|
-
- **Node.js 18+**
|
|
16
|
-
- **npm или pnpm**
|
|
17
|
-
- Git
|
|
18
|
-
- VS Code (рекомендуется)
|
|
19
|
-
|
|
20
|
-
Проверьте версии:
|
|
21
|
-
|
|
22
|
-
```bash
|
|
23
|
-
node -v
|
|
24
|
-
npm -v
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 11
|
|
3
|
-
title: Project Overview
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 🧠 Project Overview
|
|
7
|
-
|
|
8
|
-
Шаблон Project Template — это продакшен-готовый каркас для быстрого старта TypeScript-проектов.
|
|
9
|
-
|
|
10
|
-
Он экономит время при запуске нового репозитория и задаёт строгую структуру для кода, тестов,
|
|
11
|
-
релизов и документации.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## ⚙️ Основная идея
|
|
16
|
-
|
|
17
|
-
> Сделать старт нового проекта таким же быстрым и предсказуемым, как git clone.
|
|
18
|
-
|
|
19
|
-
Шаблон помогает:
|
|
20
|
-
1. Ускорить старт разработки
|
|
21
|
-
2. Обеспечить качество кода
|
|
22
|
-
3. Масштабировать проект без хаоса
|
|
23
|
-
|
|
24
|
-
---
|
|
25
|
-
|
|
26
|
-
## 🧩 Компоненты шаблона
|
|
27
|
-
|
|
28
|
-
| Компонент | За что отвечает |
|
|
29
|
-
|----------|------------------|
|
|
30
|
-
| TypeScript | строгая типизация |
|
|
31
|
-
| ESLint + Prettier | единый стиль |
|
|
32
|
-
| Vitest | тесты |
|
|
33
|
-
| Husky + lint-staged | защита коммитов |
|
|
34
|
-
| Standard Version | авто-релизы |
|
|
35
|
-
| Docusaurus | документация |
|
|
36
|
-
| GitHub Actions | CI/CD |
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
## 🏗 Архитектура проекта
|
|
41
|
-
|
|
42
|
-
- src/ — исходный код
|
|
43
|
-
- tests/ — юнит-тесты
|
|
44
|
-
- .github/workflows/ — CI/CD сценарии
|
|
45
|
-
- docs/ — документация
|
|
46
|
-
- package.json — все скрипты проекта
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## 🚀 Цели проекта
|
|
51
|
-
|
|
52
|
-
1. Создать единый стандарт качества
|
|
53
|
-
2. Автоматизировать релизы и деплой
|
|
54
|
-
3. Сделать документацию частью пайплайна
|
|
55
|
-
4. Поддержать масштабируемую архитектуру
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## 🧭 Roadmap
|
|
60
|
-
|
|
61
|
-
| Этап | Статус | Описание |
|
|
62
|
-
|------|---------|----------|
|
|
63
|
-
| ✅ Инициализация | done | структура и скрипты |
|
|
64
|
-
| ✅ Документация | done | Docusaurus + GitHub Pages |
|
|
65
|
-
| 🔄 API Reference | in progress | оформляем публичные интерфейсы |
|
|
66
|
-
| 🔜 CLI Tools | next | добавить CLI-модули |
|
|
67
|
-
| 🔜 Monorepo | next | поддержка workspaces |
|
|
68
|
-
| 🔜 Docker Dev Setup | next | контейнеризация окружения |
|
|
69
|
-
|
|
70
|
-
---
|
|
71
|
-
|
|
72
|
-
## 💡 Философия
|
|
73
|
-
|
|
74
|
-
- Простота > магия — всё понятно и прозрачно
|
|
75
|
-
- Автоматизация > ручные действия — CI/CD делает всю рутину
|
|
76
|
-
- Стандарты > хаос — одинаковый код во всех проектах
|
|
77
|
-
|
|
78
|
-
---
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Структура проекта
|
|
3
|
-
sidebar_label: Structure
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Структура проекта
|
|
7
|
-
|
|
8
|
-
Этот документ подробно описывает структуру каталогов проекта, назначение каждой директории и лучшие практики при работе с кодовой базой.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Общее устройство проекта
|
|
13
|
-
|
|
14
|
-
Главные элементы находятся в корне:
|
|
15
|
-
|
|
16
|
-
project-root/
|
|
17
|
-
│
|
|
18
|
-
├── src/
|
|
19
|
-
├── docs/
|
|
20
|
-
├── project-template/
|
|
21
|
-
├── scripts/
|
|
22
|
-
├── static/
|
|
23
|
-
├── build/
|
|
24
|
-
└── .github/
|
|
25
|
-
|
|
26
|
-
Каждая директория выполняет чётко определённую роль.
|
|
27
|
-
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
## 📁 src/ — основной код приложения
|
|
31
|
-
|
|
32
|
-
src/
|
|
33
|
-
├── api/
|
|
34
|
-
├── application/
|
|
35
|
-
├── domain/
|
|
36
|
-
├── infrastructure/
|
|
37
|
-
├── utils/
|
|
38
|
-
├── config/
|
|
39
|
-
└── index.ts
|
|
40
|
-
|
|
41
|
-
### **api/**
|
|
42
|
-
Слой взаимодействия с внешним миром:
|
|
43
|
-
|
|
44
|
-
- контроллеры
|
|
45
|
-
- роутеры
|
|
46
|
-
- валидация входящих данных
|
|
47
|
-
- обработка HTTP-запросов
|
|
48
|
-
|
|
49
|
-
### **application/**
|
|
50
|
-
Сценарии бизнес-логики:
|
|
51
|
-
|
|
52
|
-
- Use Cases
|
|
53
|
-
- обработчики
|
|
54
|
-
- DTO
|
|
55
|
-
- оркестрация запросов
|
|
56
|
-
|
|
57
|
-
### **domain/**
|
|
58
|
-
Чистая бизнес-логика:
|
|
59
|
-
|
|
60
|
-
- сущности
|
|
61
|
-
- правила предметной области
|
|
62
|
-
- контракты репозиториев
|
|
63
|
-
- доменные сервисы
|
|
64
|
-
|
|
65
|
-
**Важно:** доменный слой НЕ должен зависеть от инфраструктуры.
|
|
66
|
-
|
|
67
|
-
### **infrastructure/**
|
|
68
|
-
Реализации инфраструктурных зависимостей:
|
|
69
|
-
|
|
70
|
-
- работа с внешними API
|
|
71
|
-
- клиенты БД
|
|
72
|
-
- репозитории
|
|
73
|
-
- логирование
|
|
74
|
-
- интеграции
|
|
75
|
-
|
|
76
|
-
### **utils/**
|
|
77
|
-
Чистые вспомогательные функции:
|
|
78
|
-
|
|
79
|
-
- парсеры
|
|
80
|
-
- форматтеры
|
|
81
|
-
- хелперы
|
|
82
|
-
|
|
83
|
-
### **config/**
|
|
84
|
-
Конфигурация окружения:
|
|
85
|
-
|
|
86
|
-
- env-переменные
|
|
87
|
-
- общие настройки
|
|
88
|
-
|
|
89
|
-
---
|
|
90
|
-
|
|
91
|
-
## 📁 docs/ — документация (Docusaurus)
|
|
92
|
-
|
|
93
|
-
Содержит:
|
|
94
|
-
|
|
95
|
-
- **api/** — ручная API-документация
|
|
96
|
-
- **project-template/** — техническая документация
|
|
97
|
-
- Mermaid-диаграммы
|
|
98
|
-
- getting-started
|
|
99
|
-
- structure
|
|
100
|
-
- architecture
|
|
101
|
-
|
|
102
|
-
Это всё, что мы сейчас создаём по шагам.
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## 📁 project-template/
|
|
107
|
-
|
|
108
|
-
Файлы, относящиеся к шаблону проекта:
|
|
109
|
-
|
|
110
|
-
- преднастроенные конфиги
|
|
111
|
-
- базовые правила
|
|
112
|
-
- шаблонные элементы проекта
|
|
113
|
-
|
|
114
|
-
---
|
|
115
|
-
|
|
116
|
-
## 📁 scripts/
|
|
117
|
-
|
|
118
|
-
Вспомогательные скрипты:
|
|
119
|
-
|
|
120
|
-
- генераторы
|
|
121
|
-
- утилиты для CI/CD
|
|
122
|
-
- автоматизация процессов
|
|
123
|
-
- форматирование
|
|
124
|
-
|
|
125
|
-
Сюда помещают всё, что связано с автоматизацией, а не с кодом проекта.
|
|
126
|
-
|
|
127
|
-
---
|
|
128
|
-
|
|
129
|
-
## 📁 static/
|
|
130
|
-
|
|
131
|
-
Статические ресурсы:
|
|
132
|
-
|
|
133
|
-
- изображения
|
|
134
|
-
- favicon
|
|
135
|
-
- логотипы
|
|
136
|
-
- файлы, доступные напрямую
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## 📁 build/
|
|
141
|
-
|
|
142
|
-
Готовая сборка проекта, формируется автоматически командой:
|
|
143
|
-
|
|
144
|
-
```bash
|
|
145
|
-
npm run build
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 7
|
|
3
|
-
title: Скрипты проекта
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 🧰 Скрипты проекта
|
|
7
|
-
|
|
8
|
-
Проект использует набор npm-скриптов для запуска, тестирования, форматирования и релизов.
|
|
9
|
-
|
|
10
|
-
## ▶️ Запуск проекта
|
|
11
|
-
|
|
12
|
-
\\\bash
|
|
13
|
-
npm run dev
|
|
14
|
-
\\\
|
|
15
|
-
|
|
16
|
-
## 🧪 Тесты
|
|
17
|
-
|
|
18
|
-
\\\bash
|
|
19
|
-
npm test
|
|
20
|
-
npm run test:watch
|
|
21
|
-
npm run test:ui
|
|
22
|
-
npm run test:coverage
|
|
23
|
-
\\\
|
|
24
|
-
|
|
25
|
-
## 🧹 Качество кода
|
|
26
|
-
|
|
27
|
-
\\\bash
|
|
28
|
-
npm run lint
|
|
29
|
-
npm run format
|
|
30
|
-
\\\
|
|
31
|
-
|
|
32
|
-
## 📦 Сборка
|
|
33
|
-
|
|
34
|
-
\\\bash
|
|
35
|
-
npm run build
|
|
36
|
-
\\\
|
|
37
|
-
|
|
38
|
-
## 🚀 Релизы
|
|
39
|
-
|
|
40
|
-
\\\bash
|
|
41
|
-
npm run release
|
|
42
|
-
\\\
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
sidebar_position: 8
|
|
3
|
-
title: Тестирование
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# 🧪 Тестирование
|
|
7
|
-
|
|
8
|
-
В проекте используется Vitest — современный и быстрый тестовый раннер для TypeScript/JavaScript.
|
|
9
|
-
|
|
10
|
-
Он полностью совместим с Jest API, работает быстрее и идеально подходит для TypeScript-проектов.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## 📦 Установка зависимостей
|
|
15
|
-
|
|
16
|
-
Vitest уже настроен и установлен автоматически:
|
|
17
|
-
|
|
18
|
-
- vitest
|
|
19
|
-
- @types/jest (совместимость API)
|
|
20
|
-
- ts-node
|
|
21
|
-
- конфигурация vitest.config.ts
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## ▶️ Как запустить тесты
|
|
26
|
-
|
|
27
|
-
### 🟦 Полный прогон тестов
|
|
28
|
-
|
|
29
|
-
ash
|
|
30
|
-
npm test
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { SidebarsConfig } from "@docusaurus/plugin-content-docs";
|
|
2
|
-
|
|
3
|
-
const sidebars: SidebarsConfig = {
|
|
4
|
-
docs: [
|
|
5
|
-
{
|
|
6
|
-
type: "doc",
|
|
7
|
-
id: "intro",
|
|
8
|
-
label: "Введение",
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
type: "category",
|
|
12
|
-
label: "Документация",
|
|
13
|
-
items: [
|
|
14
|
-
"getting-started",
|
|
15
|
-
"project-architecture",
|
|
16
|
-
"folder-structure",
|
|
17
|
-
"ci-cd",
|
|
18
|
-
"testing",
|
|
19
|
-
"scripts",
|
|
20
|
-
],
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
type: "link",
|
|
24
|
-
label: "API Reference",
|
|
25
|
-
href: "/api/",
|
|
26
|
-
},
|
|
27
|
-
],
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export default sidebars;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://typedoc.org/schema.json",
|
|
3
|
-
|
|
4
|
-
"entryPoints": ["../src/index.ts"],
|
|
5
|
-
"entryPointStrategy": "resolve",
|
|
6
|
-
|
|
7
|
-
"out": "static/api",
|
|
8
|
-
|
|
9
|
-
"name": "Project Template API",
|
|
10
|
-
|
|
11
|
-
"excludePrivate": true,
|
|
12
|
-
"excludeProtected": true,
|
|
13
|
-
"excludeInternal": true,
|
|
14
|
-
|
|
15
|
-
"excludeExternals": true,
|
|
16
|
-
"excludeNotDocumented": true,
|
|
17
|
-
|
|
18
|
-
"includeVersion": true,
|
|
19
|
-
|
|
20
|
-
"categorizeByGroup": true,
|
|
21
|
-
"sort": ["source-order"],
|
|
22
|
-
|
|
23
|
-
"readme": "none",
|
|
24
|
-
|
|
25
|
-
"plugin": [],
|
|
26
|
-
|
|
27
|
-
"tsconfig": "../tsconfig.json"
|
|
28
|
-
}
|