【发布时间】:2018-11-03 02:58:18
【问题描述】:
假设我有以下 typedef:
interface Node {
id: ID!
}
type Foo implements Node {
id: ID!
quantity: Int
}
type Bar implements Node {
id: ID!
name: String
}
我发送的每个 ID,我都想以同样的方式处理。目前我需要一些解析器,例如:
{
// ...
Foo: {
id: (root) => encodeId(root.id, root.type),
// ...
},
Bar: {
id: (root) => encodeId(root.id, root.type),
// ...
},
// ...
}
由于许多类型实现了Node,这会导致大量代码重复,并且开发人员很容易忘记编码 id 的正确方法,或者忘记将它们一起编码。
有没有办法做这样的事情?
{
// ...
Node: {
__resolveType: (root) => root.type,
id: (root) => encodeId(root.id, root.type)
},
// ...
}
这样Foo、Bar 和Node 的任何其他实现将继承id 解析器?
【问题讨论】:
标签: node.js graphql apollo-server apollostack