UNPKG

1.26 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.introspectionFromSchema = introspectionFromSchema;
7
8var _invariant = _interopRequireDefault(require("../jsutils/invariant"));
9
10var _isPromise = _interopRequireDefault(require("../jsutils/isPromise"));
11
12var _parser = require("../language/parser");
13
14var _execute = require("../execution/execute");
15
16var _introspectionQuery = require("./introspectionQuery");
17
18function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
20/**
21 * Build an IntrospectionQuery from a GraphQLSchema
22 *
23 * IntrospectionQuery is useful for utilities that care about type and field
24 * relationships, but do not need to traverse through those relationships.
25 *
26 * This is the inverse of buildClientSchema. The primary use case is outside
27 * of the server context, for instance when doing schema comparisons.
28 */
29function introspectionFromSchema(schema, options) {
30 var queryAST = (0, _parser.parse)((0, _introspectionQuery.getIntrospectionQuery)(options));
31 var result = (0, _execute.execute)(schema, queryAST);
32
33 /* istanbul ignore next */
34 !(0, _isPromise.default)(result) && !result.errors && result.data || (0, _invariant.default)(0);
35 return result.data;
36}