Как преобразовать объект GraphQLSchema в определения типов

Скажем, у меня есть схема GraphQL, например:

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

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

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

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

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

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Что такое Apollo Client и зачем он нужен?
Что такое Apollo Client и зачем он нужен?
Apollo Client - это полнофункциональный клиент GraphQL для JavaScript-приложений, который упрощает получение, управление и обновление данных в...
1
0
789
1

Ответы 1

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

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

console.info(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 функций typeDefs.

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