package servergen import ( "log" "os" "github.com/99designs/gqlgen/codegen" "github.com/99designs/gqlgen/codegen/templates" "github.com/99designs/gqlgen/plugin" "github.com/pkg/errors" ) func New(filename string) plugin.Plugin { return &Plugin{filename} } type Plugin struct { filename string } var _ plugin.CodeGenerator = &Plugin{} func (m *Plugin) Name() string { return "servergen" } func (m *Plugin) GenerateCode(data *codegen.Data) error { serverBuild := &ServerBuild{ ExecPackageName: data.Config.Exec.ImportPath(), ResolverPackageName: data.Config.Resolver.ImportPath(), } if _, err := os.Stat(m.filename); os.IsNotExist(errors.Cause(err)) { return templates.Render(templates.Options{ PackageName: "main", Filename: m.filename, Data: serverBuild, }) } log.Printf("Skipped server: %s already exists\n", m.filename) return nil } type ServerBuild struct { codegen.Data ExecPackageName string ResolverPackageName string }