func newRootQuery(idx resource.Index) *graphql.Object { t := types{} if c, ok := idx.(schema.Compiler); ok { if err := c.Compile(); err != nil { log.Fatal(err) } } flds := graphql.Fields{} for _, r := range idx.GetResources() { if r.Conf().IsModeAllowed(resource.Read) { flds[r.Name()] = t.getGetQuery(idx, r) } if r.Conf().IsModeAllowed(resource.List) { flds[r.Name()+"List"] = t.getListQuery(idx, r, nil) for _, a := range r.GetAliases() { params, _ := r.GetAlias(a) flds[r.Name()+strings.Title(a)] = t.getListQuery(idx, r, params) } } } return graphql.NewObject(graphql.ObjectConfig{ Name: "RootQuery", Fields: flds, }) }