github.com/tobiash/gqlgen@v0.5.1/codegen/templates/field.gotpl (about) 1 {{ $field := . }} 2 {{ $object := $field.Object }} 3 4 {{- if $object.Stream }} 5 func (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField) func() graphql.Marshaler { 6 {{- if $field.Args }} 7 rawArgs := field.ArgumentMap(ec.Variables) 8 args, err := {{ $field.ArgsFunc }}(rawArgs) 9 if err != nil { 10 ec.Error(ctx, err) 11 return nil 12 } 13 {{- end }} 14 ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ 15 Field: field, 16 }) 17 results, err := ec.resolvers.{{ $field.ShortInvocation }} 18 if err != nil { 19 ec.Error(ctx, err) 20 return nil 21 } 22 return func() graphql.Marshaler { 23 res, ok := <-results 24 if !ok { 25 return nil 26 } 27 var out graphql.OrderedMap 28 out.Add(field.Alias, func() graphql.Marshaler { {{ $field.WriteJson }} }()) 29 return &out 30 } 31 } 32 {{ else }} 33 // nolint: vetshadow 34 func (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField, {{if not $object.Root}}obj *{{$object.FullName}}{{end}}) graphql.Marshaler { 35 {{- if $field.Args }} 36 rawArgs := field.ArgumentMap(ec.Variables) 37 args, err := {{ $field.ArgsFunc }}(rawArgs) 38 if err != nil { 39 ec.Error(ctx, err) 40 return graphql.Null 41 } 42 {{- end }} 43 rctx := &graphql.ResolverContext{ 44 Object: {{$object.GQLType|quote}}, 45 Args: {{if $field.Args }}args{{else}}nil{{end}}, 46 Field: field, 47 } 48 ctx = graphql.WithResolverContext(ctx, rctx) 49 resTmp := ec.FieldMiddleware(ctx, {{if $object.Root}}nil{{else}}obj{{end}}, func(ctx context.Context) (interface{}, error) { 50 {{- if $field.IsResolver }} 51 return ec.resolvers.{{ $field.ShortInvocation }} 52 {{- else if $field.IsMethod }} 53 {{- if $field.NoErr }} 54 return {{$field.GoReceiverName}}.{{$field.GoFieldName}}({{ $field.CallArgs }}), nil 55 {{- else }} 56 return {{$field.GoReceiverName}}.{{$field.GoFieldName}}({{ $field.CallArgs }}) 57 {{- end }} 58 {{- else if $field.IsVariable }} 59 return {{$field.GoReceiverName}}.{{$field.GoFieldName}}, nil 60 {{- end }} 61 }) 62 if resTmp == nil { 63 {{- if $field.ASTType.NonNull }} 64 if !ec.HasError(rctx) { 65 ec.Errorf(ctx, "must not be null") 66 } 67 {{- end }} 68 return graphql.Null 69 } 70 res := resTmp.({{$field.Signature}}) 71 rctx.Result = res 72 {{ $field.WriteJson }} 73 } 74 {{ end }}