{{ $field := . }} {{ $object := $field.Object }} {{- if $object.Stream }} func (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField) func() graphql.Marshaler { {{- if $field.Args }} rawArgs := field.ArgumentMap(ec.Variables) args, err := {{ $field.ArgsFunc }}(rawArgs) if err != nil { ec.Error(ctx, err) return nil } {{- end }} ctx = graphql.WithResolverContext(ctx, &graphql.ResolverContext{ Field: field, }) results, err := ec.resolvers.{{ $field.ShortInvocation }} if err != nil { ec.Error(ctx, err) return nil } return func() graphql.Marshaler { res, ok := <-results if !ok { return nil } var out graphql.OrderedMap out.Add(field.Alias, func() graphql.Marshaler { {{ $field.WriteJson }} }()) return &out } } {{ else }} // nolint: vetshadow func (ec *executionContext) _{{$object.GQLType}}_{{$field.GQLName}}(ctx context.Context, field graphql.CollectedField, {{if not $object.Root}}obj *{{$object.FullName}}{{end}}) graphql.Marshaler { {{- if $field.Args }} rawArgs := field.ArgumentMap(ec.Variables) args, err := {{ $field.ArgsFunc }}(rawArgs) if err != nil { ec.Error(ctx, err) return graphql.Null } {{- end }} rctx := &graphql.ResolverContext{ Object: {{$object.GQLType|quote}}, Args: {{if $field.Args }}args{{else}}nil{{end}}, Field: field, } ctx = graphql.WithResolverContext(ctx, rctx) resTmp := ec.FieldMiddleware(ctx, {{if $object.Root}}nil{{else}}obj{{end}}, func(ctx context.Context) (interface{}, error) { {{- if $field.IsResolver }} return ec.resolvers.{{ $field.ShortInvocation }} {{- else if $field.IsMethod }} {{- if $field.NoErr }} return {{$field.GoReceiverName}}.{{$field.GoFieldName}}({{ $field.CallArgs }}), nil {{- else }} return {{$field.GoReceiverName}}.{{$field.GoFieldName}}({{ $field.CallArgs }}) {{- end }} {{- else if $field.IsVariable }} return {{$field.GoReceiverName}}.{{$field.GoFieldName}}, nil {{- end }} }) if resTmp == nil { {{- if $field.ASTType.NonNull }} if !ec.HasError(rctx) { ec.Errorf(ctx, "must not be null") } {{- end }} return graphql.Null } res := resTmp.({{$field.Signature}}) rctx.Result = res {{ $field.WriteJson }} } {{ end }}