gqlgen provides a way to hook into the gqlgen code generation lifecycle. This repo contains several hooks that can be used:
- bulkgen
- resovlergen
- searchgen
This hook will override the default generated resolver functions with the templates for CRUD operations.
Creates resolvers to do bulk operations for a schema for both bulk input or a csv file upload input.
Creates search resolvers to search on fields within the ent schema. You must
pass in the package import name of the generated
ent code, e.g.
github.com/theopenlane/core/internal/ent/generated
. If the package is not
named generated
it is added as an alias.
api.AddPlugin(searchgen.New("github.com/theopenlane/core/internal/ent/generated")), // add the search plugin
Add the plugins to the generate.go
main
function to be included in the
setup:
func main() {
cfg, err := config.LoadConfigFromDefaultLocations()
if err != nil {
fmt.Fprintln(os.Stderr, "failed to load config", err.Error())
os.Exit(2)
}
if err := api.Generate(cfg,
api.ReplacePlugin(resolvergen.New()), // replace the resolvergen plugin
api.AddPlugin(bulkgen.New()), // add the bulkgen plugin
api.AddPlugin(searchgen.New("github.com/theopenlane/core/internal/ent/generated")), // add the search plugin
); err != nil {
fmt.Fprintln(os.Stderr, err.Error())
os.Exit(3)
}
}