Мне трудно импортировать определение / тип содержимого .graphql в другой файл .graphql в Meteor. Я пробовал такие пакеты, как Meteor-GraphQl и знаменитый GraphQl-Импорт, но ни один из них, похоже, не работает. В моем приложении есть папка api, которая содержит все мое определение:
-api
--Animal
---animal.graphql
--Dog
---dog.graphql
---resolvers.js
---dog.js
---dogForm.js
В animal.graphql у меня есть следующее:
enum A {
hunted
hunter
}
scalar Date
interface Animal {
_id: String!
name: String
group: A!
createdAt: Date
}
В dog.graphql у меня есть следующее:
#import Animal "../Animals/Animal.graphql"
type Dog implements Animal{
_id: String!
name: String!
group: A!
ayes: Int!
createdAt: Date
}
type Query {
dog: [Dog]
}
type Mutation {
createDog(
name: String!
group: A!
ayes: Int!
createdAt: Date
): Dog
}
Если я импортирую и регистрирую схему собаки в dogForm.js:
import DogSchema from "../Dog/Dog.graphql";
console.info("Dog Schema: ", DogSchema);
Я обнаружил, что схема Animal не импортирована, и получаю сообщение об ошибке:
Type "Animal" not found in document.
Здесь - это пример codeandbox. Итак, как лучше всего импортировать тип контента и определение типа в файл .graphql?





Это должно работать:
meteor add swydo:graphql
В dog.graphql:
#import "../Animal/animal.graphql"
type Dog implements Animal {
...
Может, выложить баг на их Github с небольшим воспроизведением?
Я решил свою проблему, просто импортировав файл SDL и объединив их при необходимости. Фактически, можно было бы использовать type Dog implements Animal{ ... } без импорта Animal #import Animal "../Animals/Animal.graphql", если схема Animal уже была скомпилирована (makeExecutableSchema). Итак, я закончил тем, что написал функцию с использованием шарик, дорожка и fs, которая автоматически импортирует все мои файлы .graphql и преобразователи и делает их исполняемыми. И при работе с несколькими SDL я просто import их и соединять строку.
import AnimalSchema "../Animal/animal.graphql";
import DogSchema from "../Dog/Dog.graphql";
let contatSchema = AnimalSchema + DogSchema;
Я делал это, но всегда получал: Неперехваченная ошибка: Тип «Животное» не найдено в документе.