github.com/operandinc/gqlgen@v0.16.1/plugin/servergen/server.go (about) 1 package servergen 2 3 import ( 4 "errors" 5 "io/fs" 6 "log" 7 "os" 8 9 "github.com/operandinc/gqlgen/codegen" 10 "github.com/operandinc/gqlgen/codegen/templates" 11 "github.com/operandinc/gqlgen/plugin" 12 ) 13 14 func New(filename string) plugin.Plugin { 15 return &Plugin{filename} 16 } 17 18 type Plugin struct { 19 filename string 20 } 21 22 var _ plugin.CodeGenerator = &Plugin{} 23 24 func (m *Plugin) Name() string { 25 return "servergen" 26 } 27 28 func (m *Plugin) GenerateCode(data *codegen.Data) error { 29 serverBuild := &ServerBuild{ 30 ExecPackageName: data.Config.Exec.ImportPath(), 31 ResolverPackageName: data.Config.Resolver.ImportPath(), 32 } 33 34 if _, err := os.Stat(m.filename); errors.Is(err, fs.ErrNotExist) { 35 return templates.Render(templates.Options{ 36 PackageName: "main", 37 Filename: m.filename, 38 Data: serverBuild, 39 Packages: data.Config.Packages, 40 }) 41 } 42 43 log.Printf("Skipped server: %s already exists\n", m.filename) 44 return nil 45 } 46 47 type ServerBuild struct { 48 codegen.Data 49 50 ExecPackageName string 51 ResolverPackageName string 52 }