1

使用 graphql-modules 库时,我需要自定义指令方面的帮助。不知道在哪里放置我的自定义指令,因此它与整体架构相结合

4

1 回答 1

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

于 2021-04-24T11:07:58.987 回答