handle nested lists correctly
This commit is contained in:
@@ -0,0 +1,3 @@
|
|||||||
|
query ListOfListsOfLists {
|
||||||
|
listOfListsOfLists
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package test
|
||||||
|
|
||||||
|
// Code generated by github.com/Khan/genqlient, DO NOT EDIT.
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/Khan/genqlient/graphql"
|
||||||
|
)
|
||||||
|
|
||||||
|
type ListOfListsOfListsResponse struct {
|
||||||
|
ListOfListsOfLists [][][]string `json:"listOfListsOfLists"`
|
||||||
|
}
|
||||||
|
|
||||||
|
func ListOfListsOfLists(
|
||||||
|
client graphql.Client,
|
||||||
|
) (*ListOfListsOfListsResponse, error) {
|
||||||
|
var retval ListOfListsOfListsResponse
|
||||||
|
err := client.MakeRequest(
|
||||||
|
nil,
|
||||||
|
"ListOfListsOfLists",
|
||||||
|
`
|
||||||
|
query ListOfListsOfLists {
|
||||||
|
listOfListsOfLists
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
&retval,
|
||||||
|
nil,
|
||||||
|
)
|
||||||
|
return &retval, err
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"operations": [
|
||||||
|
{
|
||||||
|
"operationName": "ListOfListsOfLists",
|
||||||
|
"query": "\nquery ListOfListsOfLists {\n\tlistOfListsOfLists\n}\n",
|
||||||
|
"sourceLocation": "testdata/queries/ListOfListsOfLists.graphql"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
+1
@@ -67,6 +67,7 @@ type Query {
|
|||||||
convert(dt: DateTime!, tz: String): DateTime!
|
convert(dt: DateTime!, tz: String): DateTime!
|
||||||
maybeConvert(dt: DateTime, tz: String): DateTime
|
maybeConvert(dt: DateTime, tz: String): DateTime
|
||||||
getJunk: Junk
|
getJunk: Junk
|
||||||
|
listOfListsOfLists: [[[String!]!]!]!
|
||||||
}
|
}
|
||||||
|
|
||||||
type Mutation {
|
type Mutation {
|
||||||
|
|||||||
+3
-2
@@ -292,14 +292,15 @@ func (builder *typeBuilder) writeType(name, namePrefix string, typ *ast.Type, fi
|
|||||||
// gqlgen does slightly different things here, but its implementation may
|
// gqlgen does slightly different things here, but its implementation may
|
||||||
// be useful to crib from:
|
// be useful to crib from:
|
||||||
// https://github.com/99designs/gqlgen/blob/master/plugin/modelgen/models.go#L113
|
// https://github.com/99designs/gqlgen/blob/master/plugin/modelgen/models.go#L113
|
||||||
if typ.Elem != nil { // XXX: this should be for, not if
|
for typ.Elem != nil {
|
||||||
// Type is a list.
|
// Type is a list.
|
||||||
builder.WriteString("[]")
|
builder.WriteString("[]")
|
||||||
typ = typ.Elem
|
typ = typ.Elem
|
||||||
}
|
}
|
||||||
if options.GetPointer() {
|
if options.GetPointer() {
|
||||||
// TODO: this does []*T, you might in principle want *[]T or
|
// TODO: this does []*T, you might in principle want *[]T or
|
||||||
// *[]*T. We could add a "sliceptr" option if it comes up.
|
// *[]*T. We could add a "sliceptr" option if it comes up (that's
|
||||||
|
// still not correct if you wanted *[][]*[]T, but, like, tough luck).
|
||||||
builder.WriteString("*")
|
builder.WriteString("*")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user