Импорт типа контента в schema.graphql в Meteor

Мне трудно импортировать определение / тип содержимого .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?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
143
2

Ответы 2

Это должно работать:

meteor add swydo:graphql

В dog.graphql:

#import "../Animal/animal.graphql"

type Dog implements Animal {
...

Я делал это, но всегда получал: Неперехваченная ошибка: Тип «Животное» не найдено в документе.

danyhiol 08.08.2018 13:24

Может, выложить баг на их Github с небольшим воспроизведением?

Loren 09.08.2018 05:53

Я решил свою проблему, просто импортировав файл 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;

Другие вопросы по теме