Допустим, у меня есть следующий typedef:
interface Node {
id: ID!
}
type Foo implements Node {
id: ID!
quantity: Int
}
type Bar implements Node {
id: ID!
name: String
}
Каждый идентификатор, который я отправляю, я хочу обрабатывать таким же образом.В настоящее время мне нужен некоторый преобразователь, такой как:
{
// ...
Foo: {
id: (root) => encodeId(root.id, root.type),
// ...
},
Bar: {
id: (root) => encodeId(root.id, root.type),
// ...
},
// ...
}
При многих типах, реализующих Node
, это приводит к значительному дублированию кода, и разработчику было бы очень легко забыть правильный способ кодирования идентификаторов.или не забудьте кодировать их все вместе.
Есть ли какой-нибудь способ сделать что-то подобное?
{
// ...
Node: {
__resolveType: (root) => root.type,
id: (root) => encodeId(root.id, root.type)
},
// ...
}
Такой, что Foo
, Bar
и любая другая реализация Node
унаследует id
решатель?