
Ability
Определяет разрешения и включает обработчики для каждого объекта.Декораторы
Определяет пользовательские декораторы в NestJS для расширенной функциональности. Смотрите пользовательские декораторы для более подробной информации.Фильтры
Includes exception filters to handle exceptions that might occur in GraphQL endpoints.Guards
Смотрите защиты для более подробной информации.Health
Включает общедоступный REST API (healthz), который возвращает JSON, чтобы подтвердить, что база данных работает должным образом.Метаданные
Определяет пользовательские объекты и предоставляет GraphQL API (graphql/metadata).Рабочая область
Генерирует и обслуживает пользовательскую GraphQL схему на основе метаданных.Структура каталога рабочей области
workspace.factory.ts, файл, содержащий функцию createGraphQLSchema. Эта функция генерирует схему, специфичную для рабочей области, используя метаданные для адаптации схемы для индивидуальных рабочих областей. Разделением построения схемы и резолвера, мы используем функцию makeExecutableSchema, которая объединяет эти отдельные элементы.
This strategy is not just about organization, but also helps with optimization, such as caching generated type definitions to enhance performance and scalability.
Workspace Schema builder
Генерирует GraphQL схему и включает:Фабрики:
Специализированные конструкторы для генерации связанных с GraphQL конструкций.- Фабрика типов переводит метаданные поля в типы GraphQL, используя
TypeMapperService. - Фабрика определения типов создает объекты ввода или вывода GraphQL на основе
objectMetadata.
Типы GraphQL
Включает перечисления, входы, объекты и скаляры и служит строительными блоками для построения схемы.Интерфейсы и определение объектов
Содержит чертежи для GraphQL сущностей и включает как предопределенные, так и пользовательские типы, такие какMONEY или URL.
Сервисы
Содержит сервис, ответственный за ассоциацию FieldMetadataType с соответствующим скаляром GraphQL или модификаторами запроса.Хранилище
Включает классTypeDefinitionsStorage, содержащий переиспользуемые определения типов, предотвращая дублирование GraphQL типов.
Конструктор резолверов рабочей области
Создает функции резолверов для запроса и изменения схемы GraphQL. Каждая фабрика в этом каталоге отвечает за создание отдельного типа резолвера, как, например,FindManyResolverFactory, предназначенной для адаптируемого применения в различных таблицах.