github.com/HaswinVidanage/gqlgen@v0.8.1-0.20220609041233-69528c1bf712/plugin/resolvergen/resolver.go (about) 1 package resolvergen 2 3 import ( 4 "log" 5 "os" 6 7 "github.com/HaswinVidanage/gqlgen/codegen" 8 "github.com/HaswinVidanage/gqlgen/codegen/templates" 9 "github.com/HaswinVidanage/gqlgen/plugin" 10 "github.com/pkg/errors" 11 ) 12 13 func New() plugin.Plugin { 14 return &Plugin{} 15 } 16 17 type Plugin struct{} 18 19 var _ plugin.CodeGenerator = &Plugin{} 20 21 func (m *Plugin) Name() string { 22 return "resovlergen" 23 } 24 func (m *Plugin) GenerateCode(data *codegen.Data) error { 25 if !data.Config.Resolver.IsDefined() { 26 return nil 27 } 28 29 resolverBuild := &ResolverBuild{ 30 Data: data, 31 PackageName: data.Config.Resolver.Package, 32 ResolverType: data.Config.Resolver.Type, 33 } 34 filename := data.Config.Resolver.Filename 35 36 if _, err := os.Stat(filename); os.IsNotExist(errors.Cause(err)) { 37 return templates.Render(templates.Options{ 38 PackageName: data.Config.Resolver.Package, 39 Filename: data.Config.Resolver.Filename, 40 Data: resolverBuild, 41 }) 42 } 43 44 log.Printf("Skipped resolver: %s already exists\n", filename) 45 return nil 46 } 47 48 type ResolverBuild struct { 49 *codegen.Data 50 51 PackageName string 52 ResolverType string 53 }