private static void DeclareFields( IInterfaceTypeDescriptor typeDescriptor, IReadOnlyCollection <FieldDefinitionNode> fieldDefinitions) { foreach (FieldDefinitionNode fieldDefinition in fieldDefinitions) { IInterfaceFieldDescriptor fieldDescriptor = typeDescriptor .Field(fieldDefinition.Name.Value) .Description(fieldDefinition.Description?.Value) .Type(fieldDefinition.Type) .SyntaxNode(fieldDefinition); foreach (DirectiveNode directive in fieldDefinition.Directives) { if (!directive.IsDeprecationReason()) { fieldDescriptor.Directive(directive); } } string deprecactionReason = fieldDefinition.DeprecationReason(); if (!string.IsNullOrEmpty(deprecactionReason)) { fieldDescriptor.Deprecated(deprecactionReason); } DeclareFieldArguments(fieldDescriptor, fieldDefinition); } }
private static void DeclareFieldArguments( IReadOnlySchemaOptions schemaOptions, IInterfaceFieldDescriptor fieldDescriptor, FieldDefinitionNode fieldDefinition) { foreach (InputValueDefinitionNode inputFieldDefinition in fieldDefinition.Arguments) { fieldDescriptor.Argument(inputFieldDefinition.Name.Value, a => { foreach (DirectiveNode directive in inputFieldDefinition.Directives) { fieldDescriptor.Directive(directive); } a.Description(inputFieldDefinition.Description?.Value) .Type(inputFieldDefinition.Type) .DefaultValue(inputFieldDefinition.DefaultValue) .SyntaxNode(schemaOptions.PreserveSyntaxNodes ? inputFieldDefinition : null); }); } }
public static IInterfaceFieldDescriptor Cost( this IInterfaceFieldDescriptor descriptor, int complexity) { if (descriptor is null) { throw new ArgumentNullException(nameof(descriptor)); } return(descriptor.Directive(new CostDirective(complexity))); }
public static IInterfaceFieldDescriptor Cost( this IInterfaceFieldDescriptor descriptor, int complexity, params MultiplierPathString[] multipliers) { if (descriptor is null) { throw new ArgumentNullException(nameof(descriptor)); } return(descriptor.Directive( new CostDirective(complexity, multipliers))); }
private static void DeclareFieldArguments( IInterfaceFieldDescriptor fieldDescriptor, FieldDefinitionNode fieldDefinition) { foreach (InputValueDefinitionNode inputFieldDefinition in fieldDefinition.Arguments) { fieldDescriptor.Argument(inputFieldDefinition.Name.Value, a => { foreach (DirectiveNode directive in inputFieldDefinition.Directives) { fieldDescriptor.Directive(directive); } a.Description(inputFieldDefinition.Description?.Value) .Type(inputFieldDefinition.Type) .DefaultValue(inputFieldDefinition.DefaultValue) .SyntaxNode(inputFieldDefinition); }); } }