diff --git a/.gitignore b/.gitignore index 0e4d441c..37d0c870 100644 --- a/.gitignore +++ b/.gitignore @@ -45,5 +45,7 @@ dist/ *.iml *.idea +.junie/ + # next.js output .next diff --git a/README.md b/README.md index 1f235392..c90ce4b9 100644 --- a/README.md +++ b/README.md @@ -1,89 +1,69 @@ ![nestjs-github-cover](https://user-images.githubusercontent.com/102182195/235650080-e661338e-4466-43f7-84fc-f801558495eb.png) -# NestJS Custom Workshop - -[//]: # 'VERSIONS' - -[](https://npmjs.com/package/@atls/schematics) -[](https://npmjs.com/package/@atls/nestjs-batch-queue) -[](https://npmjs.com/package/@atls/nestjs-connectrpc) -[](https://npmjs.com/package/@atls/nestjs-connectrpc-errors) -[](https://npmjs.com/package/@atls/nestjs-cqrs) -[](https://npmjs.com/package/@atls/nestjs-cqrs-kafka-events) -[](https://npmjs.com/package/@atls/nestjs-dataloader) -[](https://npmjs.com/package/@atls/nestjs-external-renderer) -[](https://npmjs.com/package/@atls/nestjs-gateway) -[](https://npmjs.com/package/@atls/nestjs-gcs-client) -[](https://npmjs.com/package/@atls/nestjs-graphql-redis-subscriptions) -[](https://npmjs.com/package/@atls/nestjs-grpc-errors) -[](https://npmjs.com/package/@atls/nestjs-grpc-http-proxy) -[](https://npmjs.com/package/@atls/nestjs-grpc-identity) -[](https://npmjs.com/package/@atls/grpc-keto) -[](https://npmjs.com/package/@atls/nestjs-grpc-playground) -[](https://npmjs.com/package/@atls/nestjs-grpc-reflection) -[](https://npmjs.com/package/@atls/nestjs-hydra) -[](https://npmjs.com/package/@atls/nestjs-kafka) -[](https://npmjs.com/package/@atls/nestjs-keto) -[](https://npmjs.com/package/@atls/nestjs-kratos) -[](https://npmjs.com/package/@atls/nestjs-logger) -[](https://npmjs.com/package/@atls/nestjs-microservices-registry) -[](https://npmjs.com/package/@atls/nestjs-mikro-orm-config) -[](https://npmjs.com/package/@atls/nestjs-mikro-orm-request-context) -[](https://npmjs.com/package/@atls/nestjs-pipes) -[](https://npmjs.com/package/@atls/nestjs-proto-types) -[](https://npmjs.com/package/@atls/nestjs-redis) -[](https://npmjs.com/package/@atls/nestjs-s3-client) -[](https://npmjs.com/package/@atlantis-lab/nestjs-signed-url) -[](https://npmjs.com/package/@atls/nestjs-typeorm-seeding) -[](https://npmjs.com/package/@atls/nestjs-typesense) -[](https://npmjs.com/package/@atls/nestjs-typesense-typeorm) -[](https://npmjs.com/package/@atls/nestjs-validation) - -[//]: # 'VERSIONS' - -**atls/nestjs** - это набор модулей для [NestJS](https://nestjs.com/), разработанный для упрощения разработки и улучшения продуктивности работы с фреймворком. - -В этом репозитории собраны полезные инструменты, интеграции и расширения, которые обеспечивают гибкость и мощь при создании современных приложений с использованием популярного фреймворка NestJS. - -## 🌟  Особенности: - -- Работа с различными технологиями и сервисами, такими как GraphQL, gRPC, логгирование, тестирование и другие. -- Поддержка автоматической интеграции с популярными сервисами, такими как Hydra, Keto и Kratos. -- Встроенное управление ошибками и их обработка в gRPC. -- Гибкость и модульность для настройки под различные задачи и проекты. - -## 💼  Включает следующие пакеты: - -1. `batch-queue` - пакетная обработка задач и очередей. -2. `connectrpc` - интеграция ConnectRPC с NestJS. -3. `connectrpc-errors` - обработка ошибок для ConnectRPC. -4. `cqrs` - реализация паттерна CQRS. -5. `cqrs-kafka-events` - интеграция CQRS-событий с Kafka. -6. `dataloader` - интеграция с DataLoader для оптимизации запросов. -7. `external-renderer` - поддержка рендеринга на стороне сервера. -8. `gateway` - модуль для работы с GraphQL Mesh. -9. `gcs-client` - клиент для Google Cloud Storage. -10. `graphql-redis-subscriptions` - GraphQL subscriptions через Redis. -11. `grpc-errors` - стандартизация обработки ошибок для gRPC. -12. `grpc-http-proxy` - HTTP-прокси для gRPC-сервисов. -13. `grpc-identity` - аутентификация и авторизация для gRPC-сервисов. -14. `grpc-keto` - gRPC-интеграция с Ory Keto. -15. `grpc-playground` - интеграция с gRPC Playground для тестирования и отладки. -16. `grpc-reflection` - поддержка gRPC Server Reflection. -17. `hydra` - интеграция с Hydra для работы с OAuth2 и OpenID Connect. -18. `kafka` - интеграция с Apache Kafka. -19. `keto` - интеграция с Ory Keto для авторизации. -20. `kratos` - интеграция с Ory Kratos для аутентификации и управления идентификацией. -21. `logger` - инструмент для расширенного логгирования. -22. `microservices-registry` - реестр микросервисов. -23. `mikro-orm-config` - конфигурация MikroORM. -24. `mikro-orm-request-context` - контекст запроса для MikroORM. -25. `pipes` - набор утилитарных pipes. -26. `proto-types` - типы и утилиты для proto-контрактов. -27. `redis` - интеграция с Redis. -28. `s3-client` - клиент для S3-совместимых хранилищ. -29. `signed-url` - поддержка создания и проверки подписанных URL. -30. `typeorm-seeding` - инструмент для наполнения баз данных с использованием TypeORM. -31. `typesense` - модуль для работы с поисковым движком Typesense. -32. `typesense-typeorm` - интеграция TypeORM с Typesense для работы с полнотекстовым поиском. -33. `validation` - утилиты для валидации данных. +# @atls/nestjs + +NestJS Infrastructure-first toolkit + +- CQRS, gRPC, Kafka, Auth, Storage + +## What’s inside + +### Transport + +- gRPC (errors, reflection, playground, http-proxy) +- ConnectRPC (errors) +- GraphQL Gateway (redis-subscriptions) + +### Messaging & Async + +- Kafka (cqrs) +- CQRS +- Batch Queue + +### Auth & Identity + +- Hydra +- Kratos +- Keto +- gRPC Identity + +### Persistence & Infra + +- Redis +- S3 / GCS +- MikroORM / TypeORM +- Typesense (typeorm) +- Signed URL + +### DX & Utilities + +- Logger +- Validation +- Pipes +- Proto Types +- Dataloader +- Microservices Registry +- External Renderer + +## Development + +This repo uses [Yarn 4](https://yarnpkg.com/) and [ESM](https://nodejs.org/api/esm.html). + +### Build + +```bash +yarn workspaces run build +``` + +## Why + +- opinionated infra +- consistent error model +- zero glue code between services +- production-first defaults + +## 🚀 Examples + +- [`grpc-http-proxy`](examples/grpc-http-proxy) - пример HTTP-прокси для gRPC-сервисов. +- [`grpc-playground`](examples/grpc-playground) - пример использования gRPC Playground. +- [`grpc-reflection`](examples/grpc-reflection) - пример использования gRPC Server Reflection.