makeExecutableSchema
中的 graphql-tools
用默认解析器填充架构,该解析器从父对象中提取道具,并调用与字段相关的解析器(如果存在)。这是GraphQL的默认行为,没关系。
但是我有一个已解析的架构,该架构无法执行。我有一堆解析器(在对象级别)。好的,我这样添加它们:
import {addResolveFunctionsToSchema} from "graphql-tools/dist/schemaGenerator";
addResolveFunctionsToSchema({schema, resolvers});
但这不会在字段上添加默认解析器。我知道它们不是必需的,并且GraphQL将默认使用通用分辨率,但是如果我使用例如将解析器包装到装饰器中的字段级指令,则字段上未定义的resolve
属性会导致一些问题:
visitFieldDefinition(field: GraphQLField) {
field.resolve = guard(field.resolve, this.args.scopes, ()=>null);
return field;
}
现在有一个解析器,但回调未定义。没关系。
问题是,如何用显式默认解析器填充原始解析的架构?我试图在makeExecutableSchema
来源中找到答案,但是没有运气