Ошибка импорта схемы graphql: тип «Контакт» не найден в документе - PullRequest
0 голосов
/ 27 апреля 2018

Я использую graphql-import для загрузки схемы graphql, написанной в отдельном файле. У меня есть более 40+ отдельных файлов схемы, но он с удивлением не распознает тип Contact, который у меня есть. Ниже приведены подробности.

// contact.graphql
type Contact {
    firstName: String
    lastName: String
    email: String!
    phoneNumber: String
}

// seller.graphql
# import Contact from './contact.graphql'
type Seller {
  sellerId: String!
  name: String
  image: String
  contact: Contact # Somehow not able to find Contact type
}

Примечание: contact.graphql и seller.graphql находятся в одном каталоге

Ниже приведен код для импорта схемы.

const { importSchema } = require('graphql-import');

// Load GraphQL schema from files
const typeDefs = importSchema('./typedef/index.graphql');

Во время работы сервера я получаю следующую ошибку. Понятия не имею почему? Любая помощь будет оценена.

/Users/****/workspace/my-project//node_modules/graphql/utilities/buildASTSchema.js:134
    throw new Error('Type "' + typeRef.name.value + '" not found in document.');
    ^

Error: Type "Contact" not found in document.
    at ASTDefinitionBuilder._resolveType (/Users/****/workspace/my-project/node_modules/graphql/utilities/buildASTSchema.js:134:11)
    at ASTDefinitionBuilder.buildType (/Users/****/workspace/my-project/node_modules/graphql/utilities/buildASTSchema.js:218:79)
    at ASTDefinitionBuilder._buildWrappedType (/Users/****/workspace/my-project/node_modules/graphql/utilities/buildASTSchema.js:227:24)
    at ASTDefinitionBuilder.buildField (/Users/****/workspace/my-project/node_modules/graphql/utilities/buildASTSchema.js:248:18)
    at /Users/****/workspace/my-project/node_modules/graphql/utilities/buildASTSchema.js:302:21
    at /Users/****/workspace/my-project/node_modules/graphql/jsutils/keyValMap.js:28:31
    at Array.reduce (<anonymous>)
    at keyValMap (/Users/****/workspace/my-project/node_modules/graphql/jsutils/keyValMap.js:27:15)
    at ASTDefinitionBuilder._makeFieldDefMap (/Users/****/workspace/my-project/node_modules/graphql/utilities/buildASTSchema.js:299:49)
    at fields (/Users/****/workspace/my-project/node_modules/graphql/utilities/buildASTSchema.js:284:23)

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Пройдя мой большой список схем, я понял, что два файла graphql имеют то же имя схемы, что и Seller (в другом месте), что вызывало конфликт.

Обучение, даже мы можем организовать graphql файлы в различные логические структуры каталогов, но мы должны сохранять уникальность type: -)

0 голосов
/ 27 апреля 2018

Попробуйте использовать # import Contact from 'contact.graphql'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...