次の 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