private static void DeclareFields( ITypeBindingInfo bindingInfo, IReadOnlySchemaOptions schemaOptions, IInputObjectTypeDescriptor typeDescriptor, InputObjectTypeExtensionNode node) { foreach (InputValueDefinitionNode inputField in node.Fields) { bindingInfo.TrackField(inputField.Name.Value); IInputFieldDescriptor descriptor = typeDescriptor .Field(inputField.Name.Value) .Description(inputField.Description?.Value) .Type(inputField.Type) .SyntaxNode(schemaOptions.PreserveSyntaxNodes ? inputField : null); if (inputField.DefaultValue is { })
private static void DeclareFields( ITypeBindingInfo bindingInfo, IReadOnlySchemaOptions schemaOptions, IObjectTypeDescriptor typeDescriptor, IReadOnlyCollection <FieldDefinitionNode> fieldDefinitions) { foreach (FieldDefinitionNode fieldDefinition in fieldDefinitions) { bindingInfo.TrackField(fieldDefinition.Name.Value); IObjectFieldDescriptor fieldDescriptor = typeDescriptor .Field(fieldDefinition.Name.Value) .Description(fieldDefinition.Description?.Value) .Type(fieldDefinition.Type) .SyntaxNode(schemaOptions.PreserveSyntaxNodes ? fieldDefinition : null); if (bindingInfo.TryGetFieldMember( fieldDefinition.Name.Value, MemberKind.ObjectField, out MemberInfo member)) { fieldDescriptor.Extend().OnBeforeCreate( t => t.Member = member); } foreach (DirectiveNode directive in fieldDefinition.Directives) { if (!directive.IsDeprecationReason()) { fieldDescriptor.Directive(directive); } } string deprecactionReason = fieldDefinition.DeprecationReason(); if (!string.IsNullOrEmpty(deprecactionReason)) { fieldDescriptor.Deprecated(deprecactionReason); } DeclareFieldArguments(schemaOptions, fieldDescriptor, fieldDefinition); } }
public EnumType Create( IBindingLookup bindingLookup, IReadOnlySchemaOptions schemaOptions, EnumTypeDefinitionNode node) { if (bindingLookup is null) { throw new ArgumentNullException(nameof(bindingLookup)); } if (node is null) { throw new ArgumentNullException(nameof(node)); } ITypeBindingInfo bindingInfo = bindingLookup.GetBindingInfo(node.Name.Value); return(new EnumType(d => { d.SyntaxNode(schemaOptions.PreserveSyntaxNodes ? node : null) .Name(node.Name.Value) .Description(node.Description?.Value); if (bindingInfo.SourceType != null) { d.Extend().OnBeforeCreate( t => t.RuntimeType = bindingInfo.SourceType); } foreach (DirectiveNode directive in node.Directives) { if (!directive.IsDeprecationReason()) { d.Directive(directive); } } DeclareValues(d, node.Values); })); }
public UnionType Create( IBindingLookup bindingLookup, UnionTypeDefinitionNode node) { if (bindingLookup is null) { throw new ArgumentNullException(nameof(bindingLookup)); } if (node is null) { throw new ArgumentNullException(nameof(node)); } ITypeBindingInfo bindingInfo = bindingLookup.GetBindingInfo(node.Name.Value); return(new UnionType(d => { d.SyntaxNode(node) .Name(node.Name.Value) .Description(node.Description?.Value); if (bindingInfo.SourceType != null) { d.Extend().OnBeforeCreate( t => t.RuntimeType = bindingInfo.SourceType); } foreach (NamedTypeNode namedType in node.Types) { d.Type(namedType); } foreach (DirectiveNode directive in node.Directives) { d.Directive(directive); } })); }
public ObjectType Create( IBindingLookup bindingLookup, ObjectTypeDefinitionNode node) { if (bindingLookup is null) { throw new ArgumentNullException(nameof(bindingLookup)); } if (node is null) { throw new ArgumentNullException(nameof(node)); } ITypeBindingInfo bindingInfo = bindingLookup.GetBindingInfo(node.Name.Value); return(new ObjectType(d => { d.SyntaxNode(node) .Name(node.Name.Value) .Description(node.Description?.Value); if (bindingInfo.SourceType != null) { d.Extend().OnBeforeCreate( t => t.RuntimeType = bindingInfo.SourceType); } foreach (DirectiveNode directive in node.Directives) { d.Directive(directive); } DeclareInterfaces(d, node.Interfaces); DeclareFields(bindingInfo, d, node.Fields); })); }
public UnionTypeExtension Create( IBindingLookup bindingLookup, IReadOnlySchemaOptions schemaOptions, UnionTypeExtensionNode node) { if (bindingLookup is null) { throw new ArgumentNullException(nameof(bindingLookup)); } if (node is null) { throw new ArgumentNullException(nameof(node)); } ITypeBindingInfo bindingInfo = bindingLookup.GetBindingInfo(node.Name.Value); return(new UnionTypeExtension(d => { d.Name(node.Name.Value); if (bindingInfo.SourceType != null) { d.Extend().OnBeforeCreate( t => t.RuntimeType = bindingInfo.SourceType); } foreach (NamedTypeNode namedType in node.Types) { d.Type(namedType); } foreach (DirectiveNode directive in node.Directives) { d.Directive(directive); } })); }
public EnumTypeExtension Create( IBindingLookup bindingLookup, EnumTypeExtensionNode node) { if (bindingLookup == null) { throw new ArgumentNullException(nameof(bindingLookup)); } if (node == null) { throw new ArgumentNullException(nameof(node)); } ITypeBindingInfo bindingInfo = bindingLookup.GetBindingInfo(node.Name.Value); return(new EnumTypeExtension(d => { d.Name(node.Name.Value); if (bindingInfo.SourceType != null) { d.Extend().OnBeforeCreate( t => t.ClrType = bindingInfo.SourceType); } foreach (DirectiveNode directive in node.Directives) { if (!directive.IsDeprecationReason()) { d.Directive(directive); } } DeclareValues(d, node.Values); })); }
public DirectiveType Create( IBindingLookup bindingLookup, DirectiveDefinitionNode node) { if (bindingLookup == null) { throw new ArgumentNullException(nameof(bindingLookup)); } if (node == null) { throw new ArgumentNullException(nameof(node)); } ITypeBindingInfo bindingInfo = bindingLookup.GetBindingInfo(node.Name.Value); return(new DirectiveType(c => { c.Name(node.Name.Value); c.Description(node.Description?.Value); c.SyntaxNode(node); if (bindingInfo.SourceType != null) { c.Extend().OnBeforeCreate( t => t.RuntimeType = bindingInfo.SourceType); } if (node.IsRepeatable) { c.Repeatable(); } DeclareArguments(c, node); DeclareLocations(c, node); })); }
public InterfaceTypeExtension Create( IBindingLookup bindingLookup, IReadOnlySchemaOptions schemaOptions, InterfaceTypeExtensionNode node) { if (bindingLookup is null) { throw new ArgumentNullException(nameof(bindingLookup)); } if (node is null) { throw new ArgumentNullException(nameof(node)); } ITypeBindingInfo bindingInfo = bindingLookup.GetBindingInfo(node.Name.Value); return(new InterfaceTypeExtension(d => { d.Name(node.Name.Value); if (bindingInfo.SourceType != null) { d.Extend().OnBeforeCreate( t => t.RuntimeType = bindingInfo.SourceType); } DeclareInterfaces(d, node.Interfaces); foreach (DirectiveNode directive in node.Directives) { d.Directive(directive); } DeclareFields(schemaOptions, d, node.Fields); })); }
public EnumType Create( IBindingLookup bindingLookup, EnumTypeDefinitionNode node) { if (bindingLookup == null) { throw new ArgumentNullException(nameof(bindingLookup)); } if (node == null) { throw new ArgumentNullException(nameof(node)); } ITypeBindingInfo bindingInfo = bindingLookup.GetBindingInfo(node.Name.Value); return(new EnumType(d => { d.SyntaxNode(node) .Name(node.Name.Value) .Description(node.Description?.Value); if (bindingInfo.SourceType != null) { d.Extend().OnBeforeCreate( t => t.ClrType = bindingInfo.SourceType); } foreach (DirectiveNode directive in node.Directives) { d.Directive(directive); } DeclareValues(d, node.Values); })); }