UNPKG

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