public static DocumentNode RemoveBuiltInTypes(DocumentNode schema) { var definitions = new List <IDefinitionNode>(); foreach (IDefinitionNode definition in schema.Definitions) { if (definition is INamedSyntaxNode type) { if (!IntrospectionTypes.IsIntrospectionType( type.Name.Value) && !Types.Scalars.IsBuiltIn(type.Name.Value)) { definitions.Add(definition); } } else if (definition is DirectiveDefinitionNode directive) { if (!Types.Directives.IsBuiltIn(directive.Name.Value)) { definitions.Add(definition); } } else { definitions.Add(definition); } } return(new DocumentNode(definitions)); }
public TypeDiscoverer( IDescriptorContext context, TypeRegistry typeRegistry, TypeLookup typeLookup, IEnumerable <ITypeReference> initialTypes, ITypeInterceptor interceptor, bool includeSystemTypes = true) { if (context is null) { throw new ArgumentNullException(nameof(context)); } if (typeRegistry is null) { throw new ArgumentNullException(nameof(typeRegistry)); } if (typeLookup is null) { throw new ArgumentNullException(nameof(typeLookup)); } if (initialTypes is null) { throw new ArgumentNullException(nameof(initialTypes)); } if (interceptor is null) { throw new ArgumentNullException(nameof(interceptor)); } _typeRegistry = typeRegistry; if (includeSystemTypes) { _unregistered.AddRange( IntrospectionTypes.CreateReferences(context.TypeInspector)); _unregistered.AddRange( Directives.CreateReferences(context.TypeInspector)); } _unregistered.AddRange(typeRegistry.GetTypeRefs()); _unregistered.AddRange(initialTypes.Distinct()); _typeRegistrar = new TypeRegistrar(context, typeRegistry, typeLookup, interceptor); _handlers = new ITypeRegistrarHandler[] { new SchemaTypeReferenceHandler(), new ExtendedTypeReferenceHandler(context.TypeInspector), new SyntaxTypeReferenceHandler(context.TypeInspector) }; _typeInspector = context.TypeInspector; }
private static void GenerateTypes( CodeGenerationResult result, DataGeneratorContext dataContext, CodeGeneratorContext generatorContext, ISchema schema) { GenerateQueryType( result, dataContext, generatorContext, schema.Types .OfType <ObjectType>() .Where(type => !IntrospectionTypes.IsIntrospectionType(type)) .ToList()); GenerateDependencyInjectionCode( result, generatorContext); }
private static bool IsPublicAndNoScalar(INamedType type) => !IntrospectionTypes.IsIntrospectionType(type.Name) && !(type is ScalarType);