【问题标题】:Configure @Directive in Apollo graphql server在 Apollo graphql 服务器中配置 @Directive
【发布时间】:2020-12-25 16:12:16
【问题描述】:

我想知道是否有配置指令。 我有一些在启动期间加载的选项,我想传递给指令。

编辑:我知道我可以从架构中传递选项,但这不是我想要的。

new ApolloServer({
typeDefs: [schema, constraintDirectiveTypeDefs],
schemaDirectives: { myDirect: Mydirective}
});

SchemaDirectiveVisitor.visitSchemaDirectives(schema, {
constraint: Mydirective
});

类似:

export class ConstraintDirective extends SchemaDirectiveVisitor {

constuctor(options) {
}

visitInputFieldDefinition(field: GraphQLInputField): void {
    
}

问候

【问题讨论】:

    标签: graphql apollo apollo-server


    【解决方案1】:

    你传递给 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
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-11-07
      • 2019-11-15
      • 2022-12-14
      • 2019-02-03
      • 2020-12-21
      • 2021-10-04
      • 2021-12-01
      • 2019-07-15
      • 2018-06-23
      相关资源
      最近更新 更多