Open
Description
Describe the solution you'd like
i would like the generated file to expose a function such as:
func queryPaged(
ctx context.Context,
client graphql.Client,
pageSize int,
pf func(T) error,
) error {
var cursor *string
resp, err := query(ctx, client, pageSize, cursor)
if err != nil {
return nil
}
for _, edge := range resp.X.Edges {
if err := pf(edge.GetNode()); err != nil {
return err
}
}
return nil
}
The issue I have is that this needs to be generated as the "X" is the query endpoint so it's not fixed.
One possibility is to add a generic method to the root query that returns the node inside "data",
Then we can write a generic pager with interfaces and generics.
Describe alternatives you've considered
Writing a pager function for every query, but that sort of defeats the purpose of the generator.
Additional context
The relay connection paging pattern is described here: https://relay.dev/graphql/connections.htm and here: https://graphql.org/learn/pagination/.