Круговая зависимость GraphQL.js - "Тип поля должен быть типом вывода, но получено: не определено".
Я бился головой об эту проблему в течение нескольких часов. У меня есть очень простая реализация GraphQL в Node.js следующим образом.
const UserType = new GraphQLObjectType({
name: 'User',
fields: () => ({
id: new GraphQLNonNull(GraphQLString),
username: new GraphQLNonNull(GraphQLString)
})
});
const QueryType = new GraphQLObjectType({
name: 'QueryType',
fields: () => {
user: {
type: UserType,
args: { id: { name: 'id', type: new GraphQLNonNull(GraphQLString) } },
resolve: (parent, args) => getUser(args.id)
}
})
});
const schema = new GraphQLSchema({
query: QueryType,
});
Это работает, если "тип" поля "пользователь" QueryType
что-нибудь еще (например, GraphQLString
). Если это UserType
Однако я получаю следующую ошибку.
"Error: User.id field type must be Output Type but got: undefined."
Трассировка стека никуда не полезна, она просто ведет в сам модуль GraphQL. Насколько я могу судить, это не должно быть проблемой циклической зависимости, хотя я на всякий случай пытался ее решить. Любая помощь будет принята с благодарностью, потому что это сводит меня с ума.