protected virtual FieldType ToSubscriptionFieldType(string parentTypeName, GraphQLFieldDefinition fieldDef) { var typeConfig = Types.For(parentTypeName); var fieldConfig = typeConfig.SubscriptionFieldFor(fieldDef.Name.Value, ServiceProvider); var field = new EventStreamFieldType { Name = fieldDef.Name.Value, Description = fieldConfig.Description ?? fieldDef.Comment?.Text, ResolvedType = ToGraphType(fieldDef.Type), Resolver = fieldConfig.Resolver, Subscriber = fieldConfig.Subscriber, AsyncSubscriber = fieldConfig.AsyncSubscriber, DeprecationReason = fieldConfig.DeprecationReason }; CopyMetadata(field, fieldConfig); field.Arguments = ToQueryArguments(fieldDef.Arguments); field.SetAstType(fieldDef); VisitNode(field, v => v.VisitFieldDefinition(field)); return(field); }
protected virtual FieldType ToSubscriptionFieldType(string parentTypeName, GraphQLFieldDefinition fieldDef) { var typeConfig = Types.For(parentTypeName); AssertKnownType(typeConfig); var fieldConfig = typeConfig.FieldFor((string)fieldDef.Name.Value); InitializeSubscriptionField(fieldConfig, typeConfig.Type); AssertKnownField(fieldConfig, typeConfig); var field = new EventStreamFieldType { Name = fieldConfig.Name, Description = fieldConfig.Description ?? fieldDef.Description?.Value.ToString() ?? fieldDef.Comment?.Text.ToString(), ResolvedType = ToGraphType(fieldDef.Type), Resolver = fieldConfig.Resolver, Subscriber = fieldConfig.Subscriber, AsyncSubscriber = fieldConfig.AsyncSubscriber, }; fieldConfig.CopyMetadataTo(field); field.Arguments = ToQueryArguments(fieldConfig, fieldDef.Arguments); field.SetAstType(fieldDef); OverrideDeprecationReason(field, fieldConfig.DeprecationReason); return(field); }