UNPKG

fetch-graphql-schema

Version:

fetch GraphQL schema via introspection query

29 lines (26 loc) 813 B
'use strict'; var fetch = require('node-fetch'); var _require = require('graphql/utilities'), buildClientSchema = _require.buildClientSchema, introspectionQuery = _require.introspectionQuery, printSchema = _require.printSchema; module.exports = function fetchGraphQLSchema(url, options) { options = options || {}; // eslint-disable-line no-param-reassign return fetch(url, { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json' }, body: JSON.stringify({ query: introspectionQuery }) }).then(function (res) { return res.json(); }).then(function (schemaJSON) { if (options.readable) { return printSchema(buildClientSchema(schemaJSON.data)); } return JSON.stringify(schemaJSON, null, 2); }); };