Есть ли способ объявить тип из другого файла gql?
Я пытался заставить это работать. В настоящее время я изучаю Apollo Server и GraphQL. Я просмотрел разные документы, но, похоже, не нашел ответа. Вот что я пытаюсь сделать.
У меня есть usertypes.js, и вот фрагмент кода:
const { gql } = require('apollo-server');
const UserTypeDefs = gql`
type User {
_id: ID!,
username: String!,
password: String!,
}
`;
module.exports = UserTypeDefs;
И в моем logintypes.js:
const { gql } = require('apollo-server');
const { UserTypeDefs } = require('./usertypes.js')
const LoginTypeDefs = gql`
type LoginResponse {
user: UserTypeDefs.User //this is not working. :(
}
extend type Mutation {
login(username: String!, password: String!): LoginResponse!
}
`;
module.exports = LoginTypeDefs;
Любая помощь приветствуется. Я не хочу снова объявлять мой тип User в моем logintypes.js, насколько это возможно.
Заранее спасибо.
1 ответ
Другой модуль импортировать не нужно. Просто обратитесь к типу по имени:
type LoginResponse {
user: User
}
Затем, когда вы создадите свой ApolloServer
Например, передайте typeDefs в виде массива:
const userTypeDefs = require(...)
const loginTypeDefs = require(...)
const apollo = new ApolloServer({
typeDefs: [userTypeDefs, loginTypeDefs],
...
})