Как использовать пользовательские директивы 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

Другие вопросы по тегам