fetch-graphql-schema
Version:
fetch GraphQL schema via introspection query
29 lines (26 loc) • 813 B
JavaScript
;
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);
});
};