@bogomolcompany/bogo 0.1.1 → 0.2.1

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.
Files changed (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +178 -35
  3. package/README.ru.md +266 -0
  4. package/dist/cli.js +148 -15
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/add-method.d.ts +3 -0
  7. package/dist/commands/add-method.d.ts.map +1 -0
  8. package/dist/commands/add-method.js +47 -0
  9. package/dist/commands/add-method.js.map +1 -0
  10. package/dist/commands/create-app.d.ts +2 -1
  11. package/dist/commands/create-app.d.ts.map +1 -1
  12. package/dist/commands/create-app.js +2 -2
  13. package/dist/commands/create-app.js.map +1 -1
  14. package/dist/commands/doctor.d.ts +2 -0
  15. package/dist/commands/doctor.d.ts.map +1 -0
  16. package/dist/commands/doctor.js +53 -0
  17. package/dist/commands/doctor.js.map +1 -0
  18. package/dist/commands/generate-module.d.ts +2 -1
  19. package/dist/commands/generate-module.d.ts.map +1 -1
  20. package/dist/commands/generate-module.js +41 -26
  21. package/dist/commands/generate-module.js.map +1 -1
  22. package/dist/commands/interactive.d.ts +3 -0
  23. package/dist/commands/interactive.d.ts.map +1 -0
  24. package/dist/commands/interactive.js +65 -0
  25. package/dist/commands/interactive.js.map +1 -0
  26. package/dist/commands/list-modules.d.ts +2 -0
  27. package/dist/commands/list-modules.d.ts.map +1 -0
  28. package/dist/commands/list-modules.js +36 -0
  29. package/dist/commands/list-modules.js.map +1 -0
  30. package/dist/commands/remove-module.d.ts +5 -0
  31. package/dist/commands/remove-module.d.ts.map +1 -0
  32. package/dist/commands/remove-module.js +99 -0
  33. package/dist/commands/remove-module.js.map +1 -0
  34. package/dist/templates/module.d.ts +15 -7
  35. package/dist/templates/module.d.ts.map +1 -1
  36. package/dist/templates/module.js +51 -74
  37. package/dist/templates/module.js.map +1 -1
  38. package/dist/templates/project.d.ts +2 -1
  39. package/dist/templates/project.d.ts.map +1 -1
  40. package/dist/templates/project.js +85 -17
  41. package/dist/templates/project.js.map +1 -1
  42. package/dist/templates/render-helpers.d.ts +9 -0
  43. package/dist/templates/render-helpers.d.ts.map +1 -0
  44. package/dist/templates/render-helpers.js +78 -0
  45. package/dist/templates/render-helpers.js.map +1 -0
  46. package/dist/utils/config.d.ts.map +1 -1
  47. package/dist/utils/config.js +6 -2
  48. package/dist/utils/config.js.map +1 -1
  49. package/dist/utils/http.d.ts +5 -0
  50. package/dist/utils/http.d.ts.map +1 -0
  51. package/dist/utils/http.js +13 -0
  52. package/dist/utils/http.js.map +1 -0
  53. package/dist/utils/index-path.d.ts +7 -0
  54. package/dist/utils/index-path.d.ts.map +1 -0
  55. package/dist/utils/index-path.js +25 -0
  56. package/dist/utils/index-path.js.map +1 -0
  57. package/dist/utils/io.d.ts +8 -0
  58. package/dist/utils/io.d.ts.map +1 -0
  59. package/dist/utils/io.js +31 -0
  60. package/dist/utils/io.js.map +1 -0
  61. package/dist/utils/method-spec.d.ts +4 -0
  62. package/dist/utils/method-spec.d.ts.map +1 -0
  63. package/dist/utils/method-spec.js +49 -0
  64. package/dist/utils/method-spec.js.map +1 -0
  65. package/dist/utils/parts.d.ts +4 -0
  66. package/dist/utils/parts.d.ts.map +1 -0
  67. package/dist/utils/parts.js +9 -0
  68. package/dist/utils/parts.js.map +1 -0
  69. package/dist/utils/patch-index.d.ts +8 -3
  70. package/dist/utils/patch-index.d.ts.map +1 -1
  71. package/dist/utils/patch-index.js +45 -25
  72. package/dist/utils/patch-index.js.map +1 -1
  73. package/dist/utils/patch-method.d.ts +14 -0
  74. package/dist/utils/patch-method.d.ts.map +1 -0
  75. package/dist/utils/patch-method.js +128 -0
  76. package/dist/utils/patch-method.js.map +1 -0
  77. package/dist/utils/template-loader.d.ts +3 -0
  78. package/dist/utils/template-loader.d.ts.map +1 -0
  79. package/dist/utils/template-loader.js +17 -0
  80. package/dist/utils/template-loader.js.map +1 -0
  81. package/package.json +28 -4
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 bogomolcompany
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,43 +1,76 @@
1
1
  # @bogomolcompany/bogo
2
2
 
3
- CLI-генератор модулей Express API: controller, service, dto, routes, validator.
3
+ [![npm version](https://img.shields.io/npm/v/@bogomolcompany/bogo.svg)](https://www.npmjs.com/package/@bogomolcompany/bogo)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@bogomolcompany/bogo.svg)](https://www.npmjs.com/package/@bogomolcompany/bogo)
5
+ [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/bogomolcomp/bogo/blob/main/LICENSE)
4
6
 
5
- Отдельный npm-пакет, не привязан к конкретному проекту. Настраивается через `.bogorc.json` в целевом репозитории.
7
+ [Русская версия / Russian version](README.ru.md)
6
8
 
7
- ## Установка
9
+ **`bogo create app`** — Express + TypeScript project in 10 seconds.
10
+ **`bogo g users`** — controller, service, dto, routes, validator in one command.
11
+ **`bogo r users`** — remove a module and clean up the index file.
12
+
13
+ CLI generator for Express API. Works in any repository — configured via `.bogorc.json`.
14
+
15
+ ![bogo demo](docs/demo/bogo-demo.gif)
16
+
17
+ ## Quick start
18
+
19
+ ```bash
20
+ npx @bogomolcompany/bogo create app
21
+ cp .env.example .env
22
+ npm install
23
+ npm run dev
24
+
25
+ npx bogo g users -m getList -m createUser
26
+ ```
27
+
28
+ ## Why bogo
29
+
30
+ | | NestJS CLI | express-generator | **bogo** |
31
+ |---|:---:|:---:|:---:|
32
+ | Express without a framework | — | ✓ | ✓ |
33
+ | TypeScript out of the box | ✓ | — | ✓ |
34
+ | DTO + Zod validator | ✓ | — | ✓ |
35
+ | Starter project (server, logger, middleware) | partial | — | ✓ |
36
+ | Minimal dependencies | — | ✓ | ✓ |
37
+ | Generate into an existing project | ✓ | — | ✓ |
38
+
39
+ bogo is for teams using plain Express + TypeScript who are tired of copying the same file structure every time.
40
+
41
+ ## Installation
8
42
 
9
43
  ```bash
10
44
  npm install -g @bogomolcompany/bogo
11
- # или локально в проекте
45
+ # or locally
12
46
  npm install --save-dev @bogomolcompany/bogo
13
47
  npx bogo --help
14
48
  ```
15
49
 
16
- Из исходников:
50
+ From source:
17
51
 
18
52
  ```bash
19
- git clone <repo-url> bogo-cli
20
- cd bogo-cli
53
+ git clone https://github.com/bogomolcomp/bogo.git
54
+ cd bogo
21
55
  npm install
22
56
  npm run build
23
57
  npm link
24
58
  ```
25
59
 
26
- ## Создание нового проекта
60
+ ## Create a new project
27
61
 
28
62
  ```bash
29
- mkdir my-api && cd my-api
30
- bogo create app
63
+ bogo create app my-api --with-docker --with-eslint
31
64
  ```
32
65
 
33
- Или в подпапку:
66
+ Or into a subdirectory:
34
67
 
35
68
  ```bash
36
69
  bogo create app my-api
37
70
  cd my-api
38
71
  ```
39
72
 
40
- Создаёт Express + TypeScript проект:
73
+ Creates:
41
74
 
42
75
  ```
43
76
  package.json
@@ -56,7 +89,7 @@ src/
56
89
  api/
57
90
  ```
58
91
 
59
- Включено: dotenv, body-parser, logger, formatResponse, IP whitelist (через `ALLOWED_IPS`), health-check `/health`, глобальный error handler.
92
+ Includes: dotenv, body-parser, logger, formatResponse, IP whitelist (`ALLOWED_IPS`), `/health`, global error handler.
60
93
 
61
94
  ```bash
62
95
  cp .env.example .env
@@ -64,31 +97,35 @@ npm install
64
97
  npm run dev
65
98
  ```
66
99
 
67
- ## Инициализация в существующем проекте
100
+ ## Init in an existing project
68
101
 
69
102
  ```bash
70
103
  cd /path/to/your-express-app
71
104
  bogo init
72
105
  ```
73
106
 
74
- Создаёт `.bogorc.json`:
107
+ Creates `.bogorc.json`:
75
108
 
76
109
  ```json
77
110
  {
78
111
  "apiDir": "src/api",
79
112
  "indexFile": "src/index.ts",
80
- "routePrefix": "/api"
113
+ "routePrefix": "/api",
114
+ "templatesDir": "./bogo-templates"
81
115
  }
82
116
  ```
83
117
 
84
- ## Генерация модуля
118
+ `templatesDir` is optional. Place `controller.template`, `service.template`, etc. to override built-in templates.
119
+
120
+ ## Generate a module
85
121
 
86
122
  ```bash
87
- bogo g module analytics -m getStats -m getReport
88
- bogo g module orders -m createOrder:/create -m getOrder:/:id
123
+ bogo g analytics -m getStats -m getReport
124
+ bogo g orders -m createOrder:POST:/create -m getOrder:GET:/:id
125
+ bogo g posts -m getList:GET:/list -w auth
89
126
  ```
90
127
 
91
- Создаёт:
128
+ Creates:
92
129
 
93
130
  ```
94
131
  src/api/analytics/
@@ -99,32 +136,138 @@ src/api/analytics/
99
136
  analytics.routes.ts
100
137
  ```
101
138
 
102
- И дописывает import + `app.use` в `src/index.ts` (если файл найден).
139
+ Automatically appends import and `app.use` to `src/index.ts` when the file exists.
140
+
141
+ ## Generate a single file
142
+
143
+ ```bash
144
+ bogo g controller users -m getList
145
+ bogo g service users -m getList
146
+ bogo g dto users -m getList -m createUser
147
+ bogo g validator users -m getList
148
+ bogo g routes users -m getList:/list
149
+ ```
150
+
151
+ Parts: `controller`, `service`, `dto`, `validator`, `routes`.
152
+
153
+ The module folder is created if it does not exist. Generating `routes` updates the index file the same way as a full module.
154
+
155
+ ```bash
156
+ bogo r controller users
157
+ bogo r routes users
158
+ ```
159
+
160
+ ## Add a method to an existing module
161
+
162
+ ```bash
163
+ bogo g method users -m getList
164
+ bogo g method users -m createUser -m updateUser:/:id
165
+ ```
166
+
167
+ Adds the method to all existing module files: controller, service, dto, validator, routes.
168
+
169
+ Specific parts only:
103
170
 
104
- ## Опции
171
+ ```bash
172
+ bogo g method users -m getList -p controller
173
+ bogo g method users -m getList -p controller -p service -p dto
174
+ ```
105
175
 
106
- | Флаг | Описание |
107
- |------|----------|
108
- | `-m, --method` | Метод контроллера. Повторяемый. Формат: `getList` или `getList:/custom-path` |
109
- | `--skip-index` | Не править index-файл |
176
+ `-m` is required. `-p` is optional — without it, all found files are updated.
110
177
 
111
- ## Требования к целевому проекту
178
+ ## Remove a method
179
+
180
+ ```bash
181
+ bogo r method users -m getList
182
+ bogo r method users -m createUser -p controller -p service
183
+ ```
184
+
185
+ ## List modules
186
+
187
+ ```bash
188
+ bogo list
189
+ ```
190
+
191
+ ## Doctor
192
+
193
+ ```bash
194
+ bogo doctor
195
+ ```
196
+
197
+ Checks `.bogorc.json`, index file, api directory, and required middleware.
198
+
199
+ ## Interactive mode
200
+
201
+ ```bash
202
+ bogo g --interactive
203
+ ```
204
+
205
+ ## Remove a module
206
+
207
+ ```bash
208
+ bogo r analytics
209
+ bogo r orders --skip-index
210
+ ```
211
+
212
+ Removes the module folder and cleans up import + `app.use` in the index file.
213
+
214
+ ## Method spec format
215
+
216
+ | Example | Result |
217
+ |---------|--------|
218
+ | `getList` | POST `/get-list` |
219
+ | `getList:GET` | GET `/get-list` |
220
+ | `getOrder:GET:/:id` | GET `/:id` |
221
+ | `createOrder:POST:/create` | POST `/create` |
222
+
223
+ ## Options
224
+
225
+ | Flag | Description |
226
+ |------|-------------|
227
+ | `-m, --method` | Method spec (repeatable). See table above |
228
+ | `-p, --part` | Target a specific part |
229
+ | `-w, --middleware` | Route middleware name (repeatable) |
230
+ | `-i, --interactive` | Interactive generate |
231
+ | `--dry-run` | Preview changes without writing |
232
+ | `--force` | Overwrite existing files |
233
+ | `--skip-index` | Do not patch the index file |
234
+ | `--with-docker` | Add Docker files to `create app` |
235
+ | `--with-eslint` | Add ESLint to `create app` |
236
+
237
+ ## Target project requirements
112
238
 
113
239
  - Express + TypeScript
114
- - Zod для валидации
115
- - Middleware `validate` по пути `src/middlewares/validate`
116
- - `res.success` / `res.error` через middleware ответа
240
+ - Zod for validation
241
+ - `validate` middleware at `src/middlewares/validate`
242
+ - `res.success` / `res.error` via response middleware
117
243
 
118
- ## Разработка пакета
244
+ `bogo create app` scaffolds all of the above.
245
+
246
+ ## Development
119
247
 
120
248
  ```bash
121
249
  npm run build
122
- npm run dev -- init
123
- npm run dev -- g module test -m getList
250
+ npm test
251
+ npm run dev -- create app ./tmp-app --with-eslint
252
+ npm run dev -- g test -m getList:GET
253
+ npm run dev -- g method test -m createUser
254
+ npm run dev -- r method test -m createUser
255
+ npm run dev -- list
256
+ npm run dev -- doctor
124
257
  ```
125
258
 
126
- ## Публикация
259
+ ## Links
260
+
261
+ - npm: https://www.npmjs.com/package/@bogomolcompany/bogo
262
+ - GitHub: https://github.com/bogomolcomp/bogo
263
+ - Issues / feedback: https://github.com/bogomolcomp/bogo/issues
264
+
265
+ ## Publish
127
266
 
128
267
  ```bash
129
- npm publish
268
+ npm publish --otp=YOUR_CODE
130
269
  ```
270
+
271
+ ## License
272
+
273
+ MIT
package/README.ru.md ADDED
@@ -0,0 +1,266 @@
1
+ # @bogomolcompany/bogo
2
+
3
+ [![npm version](https://img.shields.io/npm/v/@bogomolcompany/bogo.svg)](https://www.npmjs.com/package/@bogomolcompany/bogo)
4
+ [![npm downloads](https://img.shields.io/npm/dm/@bogomolcompany/bogo.svg)](https://www.npmjs.com/package/@bogomolcompany/bogo)
5
+ [![license: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/bogomolcomp/bogo/blob/main/LICENSE)
6
+
7
+ [English version](README.md)
8
+
9
+ **`bogo create app`** — Express + TypeScript проект за 10 секунд.
10
+ **`bogo g users`** — controller, service, dto, routes, validator одной командой.
11
+ **`bogo r users`** — удаляет модуль и убирает роут из index.
12
+
13
+ CLI-генератор для Express API. Не привязан к конкретному репозиторию — настраивается через `.bogorc.json`.
14
+
15
+ ![bogo demo](docs/demo/bogo-demo.gif)
16
+
17
+ ## Быстрый старт
18
+
19
+ ```bash
20
+ npx @bogomolcompany/bogo create app
21
+ copy .env.example .env
22
+ npm install
23
+ npm run dev
24
+
25
+ npx bogo g users -m getList -m createUser
26
+ ```
27
+
28
+ ## Почему bogo
29
+
30
+ | | NestJS CLI | express-generator | **bogo** |
31
+ |---|:---:|:---:|:---:|
32
+ | Express без своего фреймворка | — | ✓ | ✓ |
33
+ | TypeScript из коробки | ✓ | — | ✓ |
34
+ | DTO + Zod validator | ✓ | — | ✓ |
35
+ | Стартовый проект (server, logger, middleware) | частично | — | ✓ |
36
+ | Минимальные зависимости | — | ✓ | ✓ |
37
+ | Генерация модулей в существующий проект | ✓ | — | ✓ |
38
+
39
+ bogo — для тех, кто пишет на чистом Express + TS и устал каждый раз копировать одну и ту же структуру файлов.
40
+
41
+ ## Установка
42
+
43
+ ```bash
44
+ npm install -g @bogomolcompany/bogo
45
+ # или локально
46
+ npm install --save-dev @bogomolcompany/bogo
47
+ npx bogo --help
48
+ ```
49
+
50
+ Из исходников:
51
+
52
+ ```bash
53
+ git clone https://github.com/bogomolcomp/bogo.git
54
+ cd bogo
55
+ npm install
56
+ npm run build
57
+ npm link
58
+ ```
59
+
60
+ ## Создание нового проекта
61
+
62
+ ```bash
63
+ bogo create app my-api --with-docker --with-eslint
64
+ ```
65
+
66
+ Создаёт:
67
+
68
+ ```
69
+ package.json
70
+ tsconfig.json
71
+ .env.example
72
+ .bogorc.json
73
+ src/
74
+ index.ts
75
+ types/express.d.ts
76
+ middlewares/
77
+ logger.ts
78
+ formatResponse.ts
79
+ validate.ts
80
+ utils/
81
+ getAllowedIps.ts
82
+ api/
83
+ ```
84
+
85
+ Включено: dotenv, body-parser, logger, formatResponse, IP whitelist (`ALLOWED_IPS`), `/health`, глобальный error handler.
86
+
87
+ ```bash
88
+ copy .env.example .env
89
+ npm install
90
+ npm run dev
91
+ ```
92
+
93
+ ## Инициализация в существующем проекте
94
+
95
+ ```bash
96
+ cd /path/to/your-express-app
97
+ bogo init
98
+ ```
99
+
100
+ Создаёт `.bogorc.json`:
101
+
102
+ ```json
103
+ {
104
+ "apiDir": "src/api",
105
+ "indexFile": "src/index.ts",
106
+ "routePrefix": "/api",
107
+ "templatesDir": "./bogo-templates"
108
+ }
109
+ ```
110
+
111
+ `templatesDir` — опционально. Файлы `controller.template`, `service.template` и т.д. переопределяют встроенные шаблоны.
112
+
113
+ ## Генерация модуля
114
+
115
+ ```bash
116
+ bogo g analytics -m getStats -m getReport
117
+ bogo g orders -m createOrder:POST:/create -m getOrder:GET:/:id
118
+ bogo g posts -m getList:GET:/list -w auth
119
+ ```
120
+
121
+ Создаёт:
122
+
123
+ ```
124
+ src/api/analytics/
125
+ analytics.controller.ts
126
+ analytics.service.ts
127
+ analytics.dto.ts
128
+ analytics.validator.ts
129
+ analytics.routes.ts
130
+ ```
131
+
132
+ Автоматически дописывает import и `app.use` в `src/index.ts`, если файл найден.
133
+
134
+ ## Генерация отдельного файла
135
+
136
+ ```bash
137
+ bogo g controller users -m getList
138
+ bogo g service users -m getList
139
+ bogo g dto users -m getList -m createUser
140
+ bogo g validator users -m getList
141
+ bogo g routes users -m getList:/list
142
+ ```
143
+
144
+ Части: `controller`, `service`, `dto`, `validator`, `routes`.
145
+
146
+ Папка модуля создаётся автоматически, если её ещё нет. При генерации `routes` index обновляется так же, как при полном модуле.
147
+
148
+ ```bash
149
+ bogo r controller users
150
+ bogo r routes users
151
+ ```
152
+
153
+ ## Добавление метода в существующий модуль
154
+
155
+ ```bash
156
+ bogo g method users -m getList
157
+ bogo g method users -m createUser -m updateUser:/:id
158
+ ```
159
+
160
+ Добавляет метод во все существующие файлы модуля: controller, service, dto, validator, routes.
161
+
162
+ Только в конкретные части:
163
+
164
+ ```bash
165
+ bogo g method users -m getList -p controller
166
+ bogo g method users -m getList -p controller -p service -p dto
167
+ ```
168
+
169
+ `-m` обязателен. `-p` — опционально, без него обновляются все найденные файлы.
170
+
171
+ ## Удаление метода
172
+
173
+ ```bash
174
+ bogo r method users -m getList
175
+ bogo r method users -m createUser -p controller -p service
176
+ ```
177
+
178
+ ## Список модулей
179
+
180
+ ```bash
181
+ bogo list
182
+ ```
183
+
184
+ ## Doctor
185
+
186
+ ```bash
187
+ bogo doctor
188
+ ```
189
+
190
+ Проверяет `.bogorc.json`, index, api-папку и middleware.
191
+
192
+ ## Интерактивный режим
193
+
194
+ ```bash
195
+ bogo g --interactive
196
+ ```
197
+
198
+ ## Удаление модуля
199
+
200
+ ```bash
201
+ bogo r analytics
202
+ bogo r orders --skip-index
203
+ ```
204
+
205
+ Удаляет папку модуля и убирает import + `app.use` из index.
206
+
207
+ ## Формат `-m`
208
+
209
+ | Пример | Результат |
210
+ |--------|-----------|
211
+ | `getList` | POST `/get-list` |
212
+ | `getList:GET` | GET `/get-list` |
213
+ | `getOrder:GET:/:id` | GET `/:id` |
214
+ | `createOrder:POST:/create` | POST `/create` |
215
+
216
+ ## Опции
217
+
218
+ | Флаг | Описание |
219
+ |------|----------|
220
+ | `-m, --method` | Спецификация метода (повторяемый) |
221
+ | `-p, --part` | Только указанная часть |
222
+ | `-w, --middleware` | Middleware для роута (повторяемый) |
223
+ | `-i, --interactive` | Интерактивная генерация |
224
+ | `--dry-run` | Показать изменения без записи |
225
+ | `--force` | Перезаписать существующие файлы |
226
+ | `--skip-index` | Не править index-файл |
227
+ | `--with-docker` | Docker-файлы в `create app` |
228
+ | `--with-eslint` | ESLint в `create app` |
229
+
230
+ ## Требования к целевому проекту
231
+
232
+ - Express + TypeScript
233
+ - Zod для валидации
234
+ - Middleware `validate` по пути `src/middlewares/validate`
235
+ - `res.success` / `res.error` через middleware ответа
236
+
237
+ `bogo create app` создаёт всё это автоматически.
238
+
239
+ ## Разработка
240
+
241
+ ```bash
242
+ npm run build
243
+ npm test
244
+ npm run dev -- create app ./tmp-app --with-eslint
245
+ npm run dev -- g test -m getList:GET
246
+ npm run dev -- g method test -m createUser
247
+ npm run dev -- r method test -m createUser
248
+ npm run dev -- list
249
+ npm run dev -- doctor
250
+ ```
251
+
252
+ ## Ссылки
253
+
254
+ - npm: https://www.npmjs.com/package/@bogomolcompany/bogo
255
+ - GitHub: https://github.com/bogomolcomp/bogo
256
+ - Issues / feedback: https://github.com/bogomolcomp/bogo/issues
257
+
258
+ ## Публикация
259
+
260
+ ```bash
261
+ npm publish --otp=YOUR_CODE
262
+ ```
263
+
264
+ ## Лицензия
265
+
266
+ MIT