UNPKG

subscriptions-transport-ws

Version:
31 lines 1.23 kB
"use strict"; var graphql_1 = require('graphql'); var FIELD = 'Field'; function tooManySubscriptionFieldsError(subscriptionName) { return "Subscription \"" + subscriptionName + "\" must have only one field."; } exports.tooManySubscriptionFieldsError = tooManySubscriptionFieldsError; function subscriptionHasSingleField(context) { var schema = context.getSchema(); schema.getSubscriptionType(); return { OperationDefinition: function (node) { var operationName = node.name.value; var numFields = 0; node.selectionSet.selections.forEach(function (selection) { if (selection.kind === FIELD) { numFields++; } else { context.reportError(new graphql_1.GraphQLError('Apollo subscriptions do not support fragments on the root field', node)); } }); if (numFields > 1) { context.reportError(new graphql_1.GraphQLError(tooManySubscriptionFieldsError(operationName), node)); } return false; }, }; } exports.subscriptionHasSingleField = subscriptionHasSingleField; //# sourceMappingURL=validation.js.map