获取给定查询中的所有涉及实体

时间:2018-09-26 10:36:52

标签: javascript graphql graphql-js

给出如下GraphQL查询:

{
   a { 
      b,
      c: { x, y }
   }
}

abc是类型的地方,有没有直接的方法可以在根函数中使该类型涉及该查询?

const root = {
    a: (x, y, z) => {
       // I want to know that the query involves a, b and c
    }
}

我已经检查过可以遍历上下文信息并以递归方式获取该信息,但是我忽略了是否已有某种方法可以轻松地获取所需的信息。

更新

仔细检查docs之后,我发现可以使用 visitor模式遍历给定的GraphQL AST。

const { visit } = require('graphql/language/visitor')

const root = {
  a: (x, y, ast) => {
    visit(ast.operation, {
      enter(node) {
        if (node.kind == 'Name') {
          console.log(node.value)
        }
      }
    })
  }

这将得到a, b, c, x, y,但我仍在弄清楚如何获取节点的GraphQL类型。

0 个答案:

没有答案