blob: 22289c0254dfe6ee42efd6bfe7d16af37e9cfa54 (
plain) (
tree)
|
|
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
}
|