bug: Generating Required Custom Type as Pointer
- 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
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