如何解决在Apollo graphql服务器中配置@Directive
我想知道是否仍然可以配置指令。 我有一些在启动过程中加载的选项,我想传递给指令。
编辑:我知道我可以传递模式中的选项,但这不是我想要的。
new ApolloServer({
typeDefs: [schema,constraintDirectiveTypeDefs],schemaDirectives: { myDirect: Mydirective}
});
或
SchemaDirectiveVisitor.visitSchemaDirectives(schema,{
constraint: Mydirective
});
类似的东西:
export class ConstraintDirective extends SchemaDirectiveVisitor {
constuctor(options) {
}
visitInputFieldDefinition(field: GraphQLInputField): void {
}
致谢
解决方法
传递给ApolloServer的是一个类,而不是它的实例。充其量,您可以动态创建类:
const server = new ApolloServer({
...
schemaDirectives: {
foo: createFooDirective(SOME_VALUE)
},})
const createFooDirective = (bar) => {
return class FooDirective extends SchemaDirectiveVisitor {
visitFieldDefinition(field) {
// SOME_VALUE is now available as bar
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。