使用 graphql-modules 库时,我需要自定义指令方面的帮助。不知道在哪里放置我的自定义指令,因此它与整体架构相结合
1 回答
我想发布来自用户 Maapteh 的 Discord 社区的答案。
这是他的报价
在我们的旧版本应用程序中,我们在公共模块中拥有所有内容。在使用最新版本的模块时,我们部分保留了这种方法。查看我们代码库的某些部分:
从“apollo-server-express”导入 { ApolloServer,SchemaDirectiveVisitor };
const schema = AppModule.createSchemaForApollo();
SchemaDirectiveVisitor.visitSchemaDirectives(schema, { isMember: IsMemberDirective, deprecated: isDeprecated, ...SNIP... });
如您所见,我们创建了最终传递给 apollo 服务器的模式(使用 apollo 的示例)。我们像这样添加我们的通用指令。它们的模式在我们的通用模块中。进一步阅读...
对于通用标量,我们添加了一个通用模块。使用它们的模式(所以在模式目录中我们也有指令模式)和它们的解析器。
常量 typeDefsArray = loadFilesSync(
${__dirname}/schema/*.graphql
, { useRequire: true, }); 常量 typeDefs = mergeTypeDefs(typeDefsArray, { useSchemaDefinition: false });const resolverFunctions = { ImageUrl: ImageUrlType, PageSize: PageSizeType, Date: DateResolver, ...SNIP... };
export const CommonModule = createModule({ id: 'common', typeDefs: typeDefs, resolvers: resolverFunctions, });
希望对你有帮助
https://discord.com/channels/625400653321076807/631489837416841253/832595211166548049