如何使用resolverInfo检查graphql查询选择集中是否存在特殊字段?

如何使用resolverInfo检查graphql查询选择集中是否存在特殊字段?,graphql,Graphql,我有这样一个graphql查询: 查询{ 边缘馈电柱(第一:15){ 边缘{ 节点{ 身份证件 网址 标题 edge_喜欢(第一:10){ 计数 边缘{ 节点{ 身份证件 百分比 喜欢你 } } } } } } } 我需要知道edge字段是否存在于edge\u likes中 例如,类似这样的事情: 函数边解析器(父、参数、上下文、图形){ if(graph.operation.selectionSet.hasField(“边”)){ //做点什么。。。 } } 操作中没有简单的解析器方法来检查

我有这样一个graphql查询:

查询{
边缘馈电柱(第一:15){
边缘{
节点{
身份证件
网址
标题
edge_喜欢(第一:10){
计数
边缘{
节点{
身份证件
百分比
喜欢你
}
}
}
}
}
}
}
我需要知道
edge
字段是否存在于
edge\u likes

例如,类似这样的事情:

函数边解析器(父、参数、上下文、图形){
if(graph.operation.selectionSet.hasField(“边”)){
//做点什么。。。
}
}

操作中没有简单的解析器方法来检查selectionSet链,但您可以执行以下操作

const [currentSelections] = operation.selectionSet.selections;
currentSelections.selectionSet.selections.find(
    ({ name }) => name.value === 'edges')
);

是的,我找不到任何方法来实现这一点,最后我编写了一个类,其中包含一些有用的方法来处理图形数据。我看到您使用的是
graph.operation
来检查选择,但我使用的是
graph.fieldNodes
,这对我来说是直接的。你认为我错了吗?