private static ITypeDefinitionNode CreateTypes(FullType type) { switch (type.Kind) { case TypeKind.ENUM: return(CreateEnumType(type)); case TypeKind.INPUT_OBJECT: return(CreateInputObject(type)); case TypeKind.INTERFACE: return(CreateInterface(type)); case TypeKind.OBJECT: return(CreateObject(type)); case TypeKind.SCALAR: return(CreateScalar(type)); case TypeKind.UNION: return(CreateUnion(type)); default: throw new NotSupportedException( IntroResources.Type_NotSupported); } }
private static EnumTypeDefinitionNode CreateEnumType(FullType type) { return(new EnumTypeDefinitionNode ( null, new NameNode(type.Name), CreateDescription(type.Description), Array.Empty <DirectiveNode>(), CreateEnumValues(type.EnumValues) )); }
private static ScalarTypeDefinitionNode CreateScalar( FullType type) { return(new ScalarTypeDefinitionNode ( null, new NameNode(type.Name), CreateDescription(type.Description), Array.Empty <DirectiveNode>() )); }
private static UnionTypeDefinitionNode CreateUnion( FullType type) { return(new UnionTypeDefinitionNode ( null, new NameNode(type.Name), CreateDescription(type.Description), Array.Empty <DirectiveNode>(), CreateNamedTypeRefs(type.PossibleTypes) )); }
private static InputObjectTypeDefinitionNode CreateInputObject( FullType type) { return(new InputObjectTypeDefinitionNode ( null, new NameNode(type.Name), CreateDescription(type.Description), Array.Empty <DirectiveNode>(), CreateInputValues(type.InputFields) )); }
private static InterfaceTypeDefinitionNode CreateInterface( FullType type) { return(new InterfaceTypeDefinitionNode ( null, new NameNode(type.Name), CreateDescription(type.Description), Array.Empty <DirectiveNode>(), CreateFields(type.Fields) )); }
private static ObjectTypeDefinitionNode CreateObject( FullType type) { return(new ObjectTypeDefinitionNode ( null, new NameNode(type.Name), CreateDescription(type.Description), Array.Empty <DirectiveNode>(), CreateNamedTypeRefs(type.Interfaces), CreateFields(type.Fields) )); }
internal static SchemaFeatures FromIntrospectionResult( IntrospectionResult result) { var features = new SchemaFeatures(); FullType directive = result.Data.Schema.Types.First(t => t.Name.Equals(_directiveName, StringComparison.Ordinal)); features.HasRepeatableDirectives = directive.Fields.Any(t => t.Name.Equals(_isRepeatable, StringComparison.Ordinal)); features.HasDirectiveLocations = directive.Fields.Any(t => t.Name.Equals(_locations, StringComparison.Ordinal)); FullType schema = result.Data.Schema.Types.First(t => t.Name.Equals(_schemaName, StringComparison.Ordinal)); features.HasSubscriptionSupport = schema.Fields.Any(t => t.Name.Equals(_subscriptionType, StringComparison.Ordinal)); return(features); }