@bogomolcompany/bogo
bogo create app — Express + TypeScript проект за 10 секунд.
bogo g users — controller, service, dto, routes, validator одной командой.
bogo r users — удаляет модуль и убирает роут из index.
CLI-генератор для Express API. Не привязан к конкретному репозиторию — настраивается через .bogorc.json.

Быстрый старт
npx @bogomolcompany/bogo create app
copy .env.example .env
npm install
npm run dev
npx bogo g users -m getList -m createUserПочему bogo
| NestJS CLI | express-generator | bogo | |
|---|---|---|---|
| Express без своего фреймворка | — | ✓ | ✓ |
| TypeScript из коробки | ✓ | — | ✓ |
| DTO + Zod validator | ✓ | — | ✓ |
| Стартовый проект (server, logger, middleware) | частично | — | ✓ |
| Минимальные зависимости | — | ✓ | ✓ |
| Генерация модулей в существующий проект | ✓ | — | ✓ |
bogo — для тех, кто пишет на чистом Express + TS и устал каждый раз копировать одну и ту же структуру файлов.
Установка
npm install -g @bogomolcompany/bogo
# или локально
npm install --save-dev @bogomolcompany/bogo
npx bogo --helpИз исходников:
git clone https://github.com/bogomolcomp/bogo.git
cd bogo
npm install
npm run build
npm linkСоздание нового проекта
bogo create app my-api --with-docker --with-eslintСоздаёт:
package.json
tsconfig.json
.env.example
.bogorc.json
src/
index.ts
types/express.d.ts
middlewares/
logger.ts
formatResponse.ts
validate.ts
utils/
getAllowedIps.ts
api/
Включено: dotenv, body-parser, logger, formatResponse, IP whitelist (ALLOWED_IPS), /health, глобальный error handler.
copy .env.example .env
npm install
npm run devИнициализация в существующем проекте
cd /path/to/your-express-app
bogo initСоздаёт .bogorc.json:
{
"apiDir": "src/api",
"indexFile": "src/index.ts",
"routePrefix": "/api",
"templatesDir": "./bogo-templates"
}templatesDir — опционально. Файлы controller.template, service.template и т.д. переопределяют встроенные шаблоны.
Генерация модуля
bogo g analytics -m getStats -m getReport
bogo g orders -m createOrder:POST:/create -m getOrder:GET:/:id
bogo g posts -m getList:GET:/list -w authСоздаёт:
src/api/analytics/
analytics.controller.ts
analytics.service.ts
analytics.dto.ts
analytics.validator.ts
analytics.routes.ts
Автоматически дописывает import и app.use в src/index.ts, если файл найден.
Генерация отдельного файла
bogo g controller users -m getList
bogo g service users -m getList
bogo g dto users -m getList -m createUser
bogo g validator users -m getList
bogo g routes users -m getList:/listЧасти: controller, service, dto, validator, routes.
Папка модуля создаётся автоматически, если её ещё нет. При генерации routes index обновляется так же, как при полном модуле.
bogo r controller users
bogo r routes usersДобавление метода в существующий модуль
bogo g method users -m getList
bogo g method users -m createUser -m updateUser:/:idДобавляет метод во все существующие файлы модуля: controller, service, dto, validator, routes.
Только в конкретные части:
bogo g method users -m getList -p controller
bogo g method users -m getList -p controller -p service -p dto-m обязателен. -p — опционально, без него обновляются все найденные файлы.
Удаление метода
bogo r method users -m getList
bogo r method users -m createUser -p controller -p serviceСписок модулей
bogo listDoctor
bogo doctorПроверяет .bogorc.json, index, api-папку и middleware.
Интерактивный режим
bogo g --interactiveУдаление модуля
bogo r analytics
bogo r orders --skip-indexУдаляет папку модуля и убирает import + app.use из index.
Формат -m
| Пример | Результат |
|---|---|
getList |
POST /get-list |
getList:GET |
GET /get-list |
getOrder:GET:/:id |
GET /:id |
createOrder:POST:/create |
POST /create |
Опции
| Флаг | Описание |
|---|---|
-m, --method |
Спецификация метода (повторяемый) |
-p, --part |
Только указанная часть |
-w, --middleware |
Middleware для роута (повторяемый) |
-i, --interactive |
Интерактивная генерация |
--dry-run |
Показать изменения без записи |
--force |
Перезаписать существующие файлы |
--skip-index |
Не править index-файл |
--with-docker |
Docker-файлы в create app |
--with-eslint |
ESLint в create app |
Требования к целевому проекту
- Express + TypeScript
- Zod для валидации
- Middleware
validateпо путиsrc/middlewares/validate res.success/res.errorчерез middleware ответа
bogo create app создаёт всё это автоматически.
Разработка
npm run build
npm test
npm run dev -- create app ./tmp-app --with-eslint
npm run dev -- g test -m getList:GET
npm run dev -- g method test -m createUser
npm run dev -- r method test -m createUser
npm run dev -- list
npm run dev -- doctorСсылки
- npm: https://www.npmjs.com/package/@bogomolcompany/bogo
- GitHub: https://github.com/bogomolcomp/bogo
- Issues / feedback: https://github.com/bogomolcomp/bogo/issues
Публикация
npm publish --otp=YOUR_CODEЛицензия
MIT