99designs / 99designs/gqlgen

Non-convenient go enum value

Open
#2,490 3 comments 1 reaction 0 assignees View on GitHub
Dominant language
Go
Stars
10.8k
Forks
1.3k
Avg merge
2d 36m
Merged PRs (30d)
26

Description

### What happened?
I tried to generate enum, but one value after generation seems non-convenient :)

Interesting that it only occurred with `SLACK` value. I've used bunch of other names and it's fine.
I've did several tests and seems like problem in `SLA` inside of `SLACK`. It processes it like abbreviation :)

### What did you expect?

I'm expecting `PlatformIDSlack` instead of `PlatformIDSLACk`.

### Minimal graphql.schema and models to reproduce

Schema:
```graphql
enum PlatformID {
ASANA
SLACK
}

type Query {
myUser(email: String!): User!
}

type User {
id: String!
email: String!
}
```

Generated models:
```go
type PlatformID string

const (
PlatformIDAsana PlatformID = "ASANA"
PlatformIDSLACk PlatformID = "SLACK"
)

var AllPlatformID = []PlatformID{
PlatformIDAsana,
PlatformIDSLACk,
}
```

gclgen.yml:
```yml
# Where are all the schema files located? globs are supported eg src/**/*.graphqls
schema:
- graph/*.graphqls

# Where should the generated server code go?
exec:
filename: graph/generated.go
package: graph

# Uncomment to enable federation
# federation:
# filename: graph/federation.go
# package: graph

# Where should any generated models go?
model:
filename: graph/model/models_gen.go
package: model

# Where should the resolver implementations go?
resolver:
layout: follow-schema
dir: graph
package: graph

# Optional: turn on use ` + "`" + `gqlgen:"fieldName"` + "`" + ` tags in your models
# struct_tag: json

# Optional: turn on to use []Thing instead of []*Thing
# omit_slice_element_pointers: false

# Optional: turn off to make struct-type struct fields not use pointers
# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing }
# struct_fields_always_pointers: true

# Optional: turn off to make resolvers return values instead of pointers for structs
# resolvers_always_return_pointers: true

# Optional: set to speed up generation time by not performing a final validation pass.
# skip_validation: true

# gqlgen will search for any type names in the schema in these go packages
# if they match it will use them, otherwise it will generate them.
autobind:
# - "github.com/bynov/test-graphql/graph/model"

# This section declares type mapping between the GraphQL and go type systems
#
# The first line in each type will be used as defaults for resolver arguments and
# modelgen, the others will be allowed when binding to fields. Configure them to
# your liking
models:
ID:
model:
- github.com/99designs/gqlgen/graphql.ID
- github.com/99designs/gqlgen/graphql.Int
- github.com/99designs/gqlgen/graphql.Int64
- github.com/99designs/gqlgen/graphql.Int32
Int:
model:
- github.com/99designs/gqlgen/graphql.Int
- github.com/99designs/gqlgen/graphql.Int64
- github.com/99designs/gqlgen/graphql.Int32

```

### versions
- `go run github.com/99designs/gqlgen version v0.17.22`
- `go version go1.19.4 darwin/amd64`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.