Компоненты
Рассмотрим основные компоненты базового репозитория. Он состоит из следующих ключевых элементов:
CrudService- класс, реализующий базовую логику чтения и записи данных. Большинство CRUD-сервисов приложения наследуются от этого класса.CrudRepository- класс, предоставляющий базовую логику взаимодействия с базой данных с использованием TypeORMДиректория decorators/fieldsсодержит набор декораторов для описания полей в моделях. Эти декораторы включают соответствующие декораторы из TypeORM, а также декораторы для валидации и документирования полей.Директория applicationsвключает классы, определяющие базовую конфигурацию приложения для различных режимов работы. Например, классRestApplicationиспользуется для запуска приложения в стандартном режиме, а классConsoleApplication— для запуска приложения в режиме консольной командыSearchQuery- класс, предназначенный для создания запросов к репозиторию на уровне доменного сервиса. В настоящее время поддерживаются запросы для репозиториев, работающих с TypeORM. Запрос, сформированный с использованиемSearchQuery, преобразуется в запрос с использованиемQueryBuilderиз TypeORM.DataMapper- класс, позволяющий создать экземпляр необходимого класса на основе обычного объекта или другого экземпляра класса. Этот класс создает глубокую копию объекта, включая вложенные экземпляры других классовValidationHelper- класс, обеспечивающий валидацию объектов. Валидация выполняется с использованиемclass-validator, а также кастомных валидаторов, которые устанавливаются через декораторValidator.