1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.getRootTypeMap = exports.getRootTypes = exports.getRootTypeNames = exports.getDefinedRootType = void 0;
|
4 | const errors_js_1 = require("./errors.js");
|
5 | const memoize_js_1 = require("./memoize.js");
|
6 | function 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 | }
|
16 | exports.getDefinedRootType = getDefinedRootType;
|
17 | exports.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 | });
|
21 | exports.getRootTypes = (0, memoize_js_1.memoize1)(function getRootTypes(schema) {
|
22 | const rootTypeMap = (0, exports.getRootTypeMap)(schema);
|
23 | return new Set(rootTypeMap.values());
|
24 | });
|
25 | exports.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 | });
|