99designs / 99designs/gqlgen

bug: Generating Required Custom Type as Pointer

Aberta
#3,121 2 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
Go
Estrelas
10.8k
Forks
1.3k
Merge médio
2d 36min
PRs com merge (30d)
26

Descrição

### What happened?
When I define a custom type as required, it is generated as pointer. For example I have `[FavoriteList!]` in my schema but it generates resolver as `[]*model.FavoriteList`

### What did you expect?
I expect custom model type as not a pointer type, I think it should be `[]model.FavoriteList`

### Minimal graphql.schema and models to reproduce
```graphql
type FavoriteList {
id: Int
}

extend type Query {
favoriteLists: [FavoriteList!]
}
```

```go
func (r *queryResolver) FavoriteLists(ctx context.Context) ([]*model.FavoriteList, error) {
// ...
}
```

### versions
- `go run github.com/99designs/gqlgen version`? - v0.17.40
- `go version`? - 1.21.1

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

O problema está na lógica de geração de código para tipos personalizados obrigatórios. Examine a geração de código interna do gqlgen, provavelmente na etapa de geração de resolvers. O schema mostra uma lista não nula de tipos personalizados não nulos. Verifique como os tipos são mapeados no gerador, talvez em `codegen/config` ou `codegen/templates`. Execute o gerador com o schema fornecido para reproduzir o problema e, em seguida, encontre onde são tomadas as decisões entre ponteiro e valor para slices de structs.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
go, graphql
Domínio
api, backend
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Claramente especificada
Facilidade para iniciantes
40/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.