UNPKG

1.65 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.getRootTypeMap = exports.getRootTypes = exports.getRootTypeNames = exports.getDefinedRootType = void 0;
4const errors_js_1 = require("./errors.js");
5const memoize_js_1 = require("./memoize.js");
6function getDefinedRootType(schema, operation, nodes) {
7 const rootTypeMap = (0, exports.getRootTypeMap)(schema);
8 const rootType = rootTypeMap.get(operation);
9 if (rootType == null) {
10 throw (0, errors_js_1.createGraphQLError)(`Schema is not configured to execute ${operation} operation.`, {
11 nodes,
12 });
13 }
14 return rootType;
15}
16exports.getDefinedRootType = getDefinedRootType;
17exports.getRootTypeNames = (0, memoize_js_1.memoize1)(function getRootTypeNames(schema) {
18 const rootTypes = (0, exports.getRootTypes)(schema);
19 return new Set([...rootTypes].map(type => type.name));
20});
21exports.getRootTypes = (0, memoize_js_1.memoize1)(function getRootTypes(schema) {
22 const rootTypeMap = (0, exports.getRootTypeMap)(schema);
23 return new Set(rootTypeMap.values());
24});
25exports.getRootTypeMap = (0, memoize_js_1.memoize1)(function getRootTypeMap(schema) {
26 const rootTypeMap = new Map();
27 const queryType = schema.getQueryType();
28 if (queryType) {
29 rootTypeMap.set('query', queryType);
30 }
31 const mutationType = schema.getMutationType();
32 if (mutationType) {
33 rootTypeMap.set('mutation', mutationType);
34 }
35 const subscriptionType = schema.getSubscriptionType();
36 if (subscriptionType) {
37 rootTypeMap.set('subscription', subscriptionType);
38 }
39 return rootTypeMap;
40});