gqlgen provides a way to hook into the gqlgen code generation lifecycle. This repo contains several hooks that can be used:
- bulkgen
- resovlergen
- searchgen
- fieldgen
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.
This plugin is designed to programmatically add additional fields to your graphql schema based on existing fields in the schema or the schema name
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)
}
}