Exemple #1
0
        public override object VisitTypeDef(GraphQLSchemaParser.TypeDefContext context)
        {
            var docComment = context.comment().LastOrDefault();
            var desc       = docComment != null ? (string)VisitComment(docComment) : null;

            var fields = context.objectDef().fieldDef().Select(f => VisitFieldDef(f)).Cast <Field>().ToList();

            schemaInfo.Types.Add(context.typeName.Text, new TypeInfo(fields, context.typeName.Text, desc));
            return(null);
        }
Exemple #2
0
        public override object VisitTypeDef(GraphQLSchemaParser.TypeDefContext context)
        {
            var docComment = context.comment().LastOrDefault();
            var desc       = docComment != null ? (string)VisitComment(docComment) : null;

            var fields = new List <Field>();

            using (new FieldConsumer(this, fields))
            {
                var result = base.Visit(context.objectDef());
                schemaInfo.Types.Add(context.typeName.Text, new TypeInfo(fields, context.typeName.Text, desc));
                return(result);
            }
        }
        public override object VisitTypeDef(GraphQLSchemaParser.TypeDefContext context)
        {
            var docComment = context.comment().LastOrDefault();
            var desc       = docComment != null ? (string)VisitComment(docComment) : null;

            var fields = new List <Field>();

            using (new FieldConsumer(this, fields))
            {
                var result = base.Visit(context.objectDef());
                // you can extend type to add fields to it so the type might already be in the schema
                if (schemaInfo.Types.ContainsKey(context.typeName.GetText()))
                {
                    schemaInfo.Types[context.typeName.GetText()].Fields.AddRange(fields);
                }
                else
                {
                    schemaInfo.Types.Add(context.typeName.GetText(), new TypeInfo(fields, context.typeName.GetText(), desc));
                }
                return(result);
            }
        }