Как преобразовать объект GraphQLSchema в определения типов - PullRequest
0 голосов
/ 03 мая 2018

Допустим, у меня есть схема GraphQL, как:

type author {
    id: Int
    name: String
    rating: Int  
}

Вы можете использовать это определение типа для генерации исполняемой схемы, к которой можно обратиться.

Но если у меня нет вышеуказанных определений типов, а есть только объект GraphQLSchema, полученный с помощью запроса самоанализа, как мне сгенерировать вышеуказанные определения типов?

Я проверил утилиты graphql / utilities, у которых был метод printSchema, который принимает объект GraphQLSchema и печатает строку. Но я не могу отфильтровать выходные данные для конкретного узла в одиночку, так как мне не нужна вся схема. Разбор строки вывода не желателен.

Указание на правильные методы приветствуется.

1 Ответ

0 голосов
/ 18 мая 2018

В отличие от printSchema это не упоминается в документации, но graphql-js экспортирует printType метод именно для этого! См. источники . Например, с graphql-iso-date .

const { printType } = require('graphql');
const { GraphQLDate } = require('graphql-iso-date');

console.log(printType(GraphQLDate));

Он печатает:

"""
A date string, such as 2007-12-03, compliant with the `full-date` format
outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for
representation of dates and times using the Gregorian calendar.
"""
scalar Date

Который можно просто указать в параметре makeExecutableSchema functions typeDefs.

...