UNPKG

1.33 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3var graphql_1 = require("graphql");
4var FIELD = 'Field';
5function tooManySubscriptionFieldsError(subscriptionName) {
6 return "Subscription \"" + subscriptionName + "\" must have only one field.";
7}
8exports.tooManySubscriptionFieldsError = tooManySubscriptionFieldsError;
9function subscriptionHasSingleRootField(context) {
10 var schema = context.getSchema();
11 schema.getSubscriptionType();
12 return {
13 OperationDefinition: function (node) {
14 var operationName = node.name ? node.name.value : '';
15 var numFields = 0;
16 node.selectionSet.selections.forEach(function (selection) {
17 if (selection.kind === FIELD) {
18 numFields++;
19 }
20 else {
21 context.reportError(new graphql_1.GraphQLError('Apollo subscriptions do not support fragments on the root field', [node]));
22 }
23 });
24 if (numFields > 1) {
25 context.reportError(new graphql_1.GraphQLError(tooManySubscriptionFieldsError(operationName), [node]));
26 }
27 return false;
28 },
29 };
30}
31exports.subscriptionHasSingleRootField = subscriptionHasSingleRootField;
32//# sourceMappingURL=validation.js.map
\No newline at end of file