Как использовать пользовательские директивы graphql-modules с apollo
Мне нужна помощь с настраиваемыми директивами при использовании библиотеки graphql-modules. Не знаю, где разместить мои пользовательские директивы, чтобы они сочетались с общей схемой
1 ответ
Я хотел бы опубликовать ответ от сообщества Discord, от пользователя Maapteh.
вот его цитата
в нашем приложении со старой версией у нас было все в общем модуле. Мы частично сохранили этот подход при использовании последней версии модулей. Посмотрите некоторые части нашей кодовой базы:
импортировать {ApolloServer, SchemaDirectiveVisitor} из 'apollo-server-express';
const schema = AppModule.createSchemaForApollo();
SchemaDirectiveVisitor.visitSchemaDirectives(схема, {isMember: IsMemberDirective, не рекомендуется: isDeprecated, ... SNIP ...});
как вы можете видеть, мы создаем схему, которую в конечном итоге передаем серверу apollo (пример с использованием apollo). Вот так мы добавляем наши общие директивы. Схема для них находится в нашем общем модуле. Читать дальше ...
Для общих скаляров мы добавили общий модуль. С их схемой (так что в каталоге схем у нас также есть схемы директив) и их преобразователем.
const typeDefsArray = loadFilesSync(
${__dirname}/schema/*.graphql
, {useRequire: true,}); константа typeDefs = mergeTypeDefs(typeDefsArray, {useSchemaDefinition: false});const resolverFunctions = {ImageUrl: ImageUrlType,PageSize: PageSizeType,Date: DateResolver, ... SNIP ...};
экспорт const CommonModule = createModule({id: 'common',typeDefs: typeDefs,resolvers: resolverFunctions,});
надеюсь, это поможет тебе
https://discord.com/channels/625400653321076807/631489837416841253/832595211166548049