From 5c568a362b73cf163b06bc7371982f9a7ceaaf29 Mon Sep 17 00:00:00 2001 From: Michael Muré Date: Tue, 14 Aug 2018 14:48:41 +0200 Subject: gqlgen: add a small program to go:generate the code --- .../github.com/vektah/gqlgen/codegen/enum_build.go | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 vendor/github.com/vektah/gqlgen/codegen/enum_build.go (limited to 'vendor/github.com/vektah/gqlgen/codegen/enum_build.go') diff --git a/vendor/github.com/vektah/gqlgen/codegen/enum_build.go b/vendor/github.com/vektah/gqlgen/codegen/enum_build.go new file mode 100644 index 00000000..f2e6f63c --- /dev/null +++ b/vendor/github.com/vektah/gqlgen/codegen/enum_build.go @@ -0,0 +1,39 @@ +package codegen + +import ( + "sort" + "strings" + + "github.com/vektah/gqlgen/codegen/templates" + "github.com/vektah/gqlgen/neelance/schema" +) + +func (cfg *Config) buildEnums(types NamedTypes) []Enum { + var enums []Enum + + for _, typ := range cfg.schema.Types { + namedType := types[typ.TypeName()] + e, isEnum := typ.(*schema.Enum) + if !isEnum || strings.HasPrefix(typ.TypeName(), "__") || namedType.IsUserDefined { + continue + } + + var values []EnumValue + for _, v := range e.Values { + values = append(values, EnumValue{v.Name, v.Desc}) + } + + enum := Enum{ + NamedType: namedType, + Values: values, + } + enum.GoType = templates.ToCamel(enum.GQLType) + enums = append(enums, enum) + } + + sort.Slice(enums, func(i, j int) bool { + return strings.Compare(enums[i].GQLType, enums[j].GQLType) == -1 + }) + + return enums +} -- cgit