Skip to content

Instantly share code, notes, and snippets.

@mayocream
Last active August 23, 2022 10:09
Show Gist options
  • Save mayocream/cf36e9354f4ca9abfa9b304b830509cd to your computer and use it in GitHub Desktop.
Save mayocream/cf36e9354f4ca9abfa9b304b830509cd to your computer and use it in GitHub Desktop.
gateway.QueryPlanList{
&gateway.QueryPlan{
Operation: &ast.OperationDefinition{
Operation: "query",
Name: "",
VariableDefinitions: ast.VariableDefinitionList(nil),
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet{
&ast.Field{
Alias: "allUsers",
Name: "allUsers",
Arguments: ast.ArgumentList(nil),
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet{
&ast.Field{
Alias: "firstName",
Name: "firstName",
Arguments: ast.ArgumentList(nil),
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet(nil),
Position: &ast.Position{
Start: 19,
End: 28,
Line: 3,
Column: 5,
Src: &ast.Source{
Name: "",
Input: "{\n allUsers {\n firstName\n lastName\n }\n}",
BuiltIn: false,
},
},
Definition: &ast.FieldDefinition{
Description: "",
Name: "firstName",
Arguments: ast.ArgumentDefinitionList{},
DefaultValue: (*ast.Value)(nil),
Type: &ast.Type{
NamedType: "String",
Elem: (*ast.Type)(nil),
NonNull: true,
Position: &ast.Position{
Start: 0,
End: 0,
Line: 0,
Column: 0,
Src: (*ast.Source)(nil),
},
},
Directives: ast.DirectiveList(nil),
Position: (*ast.Position)(nil),
},
ObjectDefinition: &ast.Definition{
Kind: "OBJECT",
Description: "",
Name: "User",
Directives: ast.DirectiveList(nil),
Interfaces: []string{
"Node",
},
Fields: ast.FieldList{
&ast.FieldDefinition{
Description: "",
Name: "id",
Arguments: ast.ArgumentDefinitionList{},
DefaultValue: (*ast.Value)(nil),
Type: &ast.Type{
NamedType: "ID",
Elem: (*ast.Type)(nil),
NonNull: true,
Position: &ast.Position{
Start: 0,
End: 0,
Line: 0,
Column: 0,
Src: (*ast.Source)(nil),
},
},
Directives: ast.DirectiveList(nil),
Position: (*ast.Position)(nil),
},
&ast.FieldDefinition{
Description: "",
Name: "lastName",
Arguments: ast.ArgumentDefinitionList{},
DefaultValue: (*ast.Value)(nil),
Type: &ast.Type{
NamedType: "String",
Elem: (*ast.Type)(nil),
NonNull: true,
Position: &ast.Position{
Start: 0,
End: 0,
Line: 0,
Column: 0,
Src: (*ast.Source)(nil),
},
},
Directives: ast.DirectiveList(nil),
Position: (*ast.Position)(nil),
},
&ast.FieldDefinition{...},
},
Types: []string(nil),
EnumValues: ast.EnumValueList(nil),
Position: (*ast.Position)(nil),
BuiltIn: false,
},
},
&ast.Field{
Alias: "lastName",
Name: "lastName",
Arguments: ast.ArgumentList(nil),
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet(nil),
Position: &ast.Position{
Start: 33,
End: 41,
Line: 4,
Column: 5,
Src: &ast.Source{...},
},
Definition: &ast.FieldDefinition{...},
ObjectDefinition: &ast.Definition{...},
},
},
Position: &ast.Position{
Start: 4,
End: 12,
Line: 2,
Column: 3,
Src: &ast.Source{...},
},
Definition: &ast.FieldDefinition{
Description: "",
Name: "allUsers",
Arguments: ast.ArgumentDefinitionList{},
DefaultValue: (*ast.Value)(nil),
Type: &ast.Type{
NamedType: "",
Elem: &ast.Type{
NamedType: "User",
Elem: (*ast.Type)(nil),
NonNull: true,
Position: &ast.Position{
Start: 0,
End: 0,
Line: 0,
Column: 0,
Src: (*ast.Source)(nil),
},
},
NonNull: true,
Position: &ast.Position{
Start: 0,
End: 0,
Line: 0,
Column: 0,
Src: (*ast.Source)(nil),
},
},
Directives: ast.DirectiveList(nil),
Position: (*ast.Position)(nil),
},
ObjectDefinition: &ast.Definition{
Kind: "OBJECT",
Description: "",
Name: "Query",
Directives: ast.DirectiveList(nil),
Interfaces: []string(nil),
Fields: ast.FieldList{
&ast.FieldDefinition{
Description: "",
Name: "node",
Arguments: ast.ArgumentDefinitionList{
&ast.ArgumentDefinition{
Description: "",
Name: "id",
DefaultValue: (*ast.Value)(nil),
Type: &ast.Type{
NamedType: "ID",
Elem: (*ast.Type)(nil),
NonNull: true,
Position: &ast.Position{
Start: 0,
End: 0,
Line: 0,
Column: 0,
Src: (*ast.Source)(nil),
},
},
Directives: ast.DirectiveList(nil),
Position: (*ast.Position)(nil),
},
},
DefaultValue: (*ast.Value)(nil),
Type: &ast.Type{
NamedType: "Node",
Elem: (*ast.Type)(nil),
NonNull: false,
Position: &ast.Position{
Start: 0,
End: 0,
Line: 0,
Column: 0,
Src: (*ast.Source)(nil),
},
},
Directives: ast.DirectiveList(nil),
Position: (*ast.Position)(nil),
},
&ast.FieldDefinition{...},
&ast.FieldDefinition{
Description: "",
Name: "__schema",
Arguments: ast.ArgumentDefinitionList(nil),
DefaultValue: (*ast.Value)(nil),
Type: &ast.Type{
NamedType: "__Schema",
Elem: (*ast.Type)(nil),
NonNull: true,
Position: (*ast.Position)(nil),
},
Directives: ast.DirectiveList(nil),
Position: (*ast.Position)(nil),
},
&ast.FieldDefinition{
Description: "",
Name: "__type",
Arguments: ast.ArgumentDefinitionList{
&ast.ArgumentDefinition{
Description: "",
Name: "name",
DefaultValue: (*ast.Value)(nil),
Type: &ast.Type{
NamedType: "String",
Elem: (*ast.Type)(nil),
NonNull: true,
Position: (*ast.Position)(nil),
},
Directives: ast.DirectiveList(nil),
Position: (*ast.Position)(nil),
},
},
DefaultValue: (*ast.Value)(nil),
Type: &ast.Type{
NamedType: "__Type",
Elem: (*ast.Type)(nil),
NonNull: false,
Position: (*ast.Position)(nil),
},
Directives: ast.DirectiveList(nil),
Position: (*ast.Position)(nil),
},
},
Types: []string(nil),
EnumValues: ast.EnumValueList(nil),
Position: (*ast.Position)(nil),
BuiltIn: false,
},
},
},
Position: &ast.Position{
Start: 0,
End: 1,
Line: 1,
Column: 1,
Src: &ast.Source{...},
},
},
RootStep: &gateway.QueryPlanStep{
InsertionPoint: []string{},
Then: []*gateway.QueryPlanStep{
&gateway.QueryPlanStep{
InsertionPoint: []string{},
Then: []*gateway.QueryPlanStep{
&gateway.QueryPlanStep{
InsertionPoint: []string{
"allUsers",
},
Then: []*gateway.QueryPlanStep(nil),
Queryer: &graphql.SingleRequestQueryer{
queryer: &graphql.NetworkQueryer{
URL: "http://127.0.0.1:8081",
Middlewares: []graphql.NetworkMiddleware(nil),
Client: (*http.Client)(nil),
},
},
ParentType: "User",
ParentID: "",
SelectionSet: ast.SelectionSet{
&ast.Field{
Alias: "lastName",
Name: "lastName",
Arguments: ast.ArgumentList(nil),
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet(nil),
Position: (*ast.Position)(nil),
Definition: &ast.FieldDefinition{...},
ObjectDefinition: &ast.Definition{...},
},
},
QueryDocument: &ast.QueryDocument{
Operations: ast.OperationList{
&ast.OperationDefinition{
Operation: "query",
Name: "",
VariableDefinitions: ast.VariableDefinitionList{
&ast.VariableDefinition{
Variable: "id",
Type: &ast.Type{
NamedType: "ID",
Elem: (*ast.Type)(nil),
NonNull: true,
Position: &ast.Position{
Start: 0,
End: 0,
Line: 0,
Column: 0,
Src: (*ast.Source)(nil),
},
},
DefaultValue: (*ast.Value)(nil),
Directives: ast.DirectiveList(nil),
Position: (*ast.Position)(nil),
Definition: (*ast.Definition)(nil),
Used: false,
},
},
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet{
&ast.Field{
Alias: "",
Name: "node",
Arguments: ast.ArgumentList{
&ast.Argument{
Name: "id",
Value: &ast.Value{
Raw: "id",
Children: ast.ChildValueList(nil),
Kind: 0,
Position: (*ast.Position)(nil),
Definition: (*ast.Definition)(nil),
VariableDefinition: (*ast.VariableDefinition)(nil),
ExpectedType: (*ast.Type)(nil),
},
Position: (*ast.Position)(nil),
},
},
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet{
&ast.InlineFragment{
TypeCondition: "User",
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet{...},
ObjectDefinition: (*ast.Definition)(nil),
Position: (*ast.Position)(nil),
},
},
Position: (*ast.Position)(nil),
Definition: (*ast.FieldDefinition)(nil),
ObjectDefinition: (*ast.Definition)(nil),
},
},
Position: (*ast.Position)(nil),
},
},
Fragments: ast.FragmentDefinitionList(nil),
Position: (*ast.Position)(nil),
},
QueryString: "query ($id: ID!) {\n\tnode(id: $id) {\n\t\t... on User {\n\t\t\tlastName\n\t\t}\n\t}\n}\n",
FragmentDefinitions: ast.FragmentDefinitionList(nil),
Variables: gateway.Set{},
},
},
Queryer: &graphql.SingleRequestQueryer{
queryer: &graphql.NetworkQueryer{
URL: "http://127.0.0.1:8082",
Middlewares: []graphql.NetworkMiddleware(nil),
Client: (*http.Client)(nil),
},
},
ParentType: "Query",
ParentID: "",
SelectionSet: ast.SelectionSet{
&ast.Field{
Alias: "allUsers",
Name: "allUsers",
Arguments: ast.ArgumentList(nil),
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet{
&ast.Field{
Alias: "firstName",
Name: "firstName",
Arguments: ast.ArgumentList(nil),
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet(nil),
Position: (*ast.Position)(nil),
Definition: &ast.FieldDefinition{...},
ObjectDefinition: &ast.Definition{...},
},
&ast.Field{
Alias: "",
Name: "id",
Arguments: ast.ArgumentList(nil),
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet(nil),
Position: (*ast.Position)(nil),
Definition: (*ast.FieldDefinition)(nil),
ObjectDefinition: (*ast.Definition)(nil),
},
},
Position: (*ast.Position)(nil),
Definition: &ast.FieldDefinition{...},
ObjectDefinition: &ast.Definition{...},
},
},
QueryDocument: &ast.QueryDocument{
Operations: ast.OperationList{
&ast.OperationDefinition{
Operation: "query",
Name: "",
VariableDefinitions: ast.VariableDefinitionList{},
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet{...},
Position: (*ast.Position)(nil),
},
},
Fragments: ast.FragmentDefinitionList(nil),
Position: (*ast.Position)(nil),
},
QueryString: "query {\n\tallUsers {\n\t\tfirstName\n\t\tid\n\t}\n}\n",
FragmentDefinitions: ast.FragmentDefinitionList(nil),
Variables: gateway.Set{},
},
},
Queryer: &graphql.SingleRequestQueryer{
queryer: &graphql.NetworkQueryer{
URL: "",
Middlewares: []graphql.NetworkMiddleware(nil),
Client: (*http.Client)(nil),
},
},
ParentType: "Query",
ParentID: "",
SelectionSet: ast.SelectionSet{
&ast.Field{
Alias: "",
Name: "id",
Arguments: ast.ArgumentList(nil),
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet(nil),
Position: (*ast.Position)(nil),
Definition: (*ast.FieldDefinition)(nil),
ObjectDefinition: (*ast.Definition)(nil),
},
},
QueryDocument: &ast.QueryDocument{
Operations: ast.OperationList{
&ast.OperationDefinition{
Operation: "query",
Name: "",
VariableDefinitions: ast.VariableDefinitionList{},
Directives: ast.DirectiveList(nil),
SelectionSet: ast.SelectionSet{...},
Position: (*ast.Position)(nil),
},
},
Fragments: ast.FragmentDefinitionList{},
Position: (*ast.Position)(nil),
},
QueryString: "query {\n\tid\n}\n",
FragmentDefinitions: ast.FragmentDefinitionList{},
Variables: gateway.Set{},
},
FragmentDefinitions: ast.FragmentDefinitionList(nil),
FieldsToScrub: map[string][][]string{
"id": [][]string{
[]string{...},
},
},
},
}
{ {
operation = {
directives = {},
selection_map = {
allUsers = <1>{
arguments = {},
directives = {},
name = "allUsers",
selection_map = {
firstName = <2>{
arguments = {},
directives = {},
name = "firstName",
selection_map = {},
selection_set = {},
<metatable> = <3>{
__call = <function 1>,
__index = <table 3>,
__tostring = <function 2>,
new = <function 3>,
super = <4>{
__call = <function 1>,
__index = <table 4>,
__tostring = <function 4>,
children = <function 5>,
new = <function 6>,
select = <function 7>,
super = <5>{
__call = <function 1>,
__index = <table 5>,
__tostring = <function 4>,
children = <function 8>,
new = <function 9>,
propagate = <function 10>,
super = <6>{
__call = <function 1>,
__index = <table 6>,
__tostring = <function 11>,
extend = <function 12>,
implement = <function 13>,
is = <function 14>,
new = <function 15>
},
<metatable> = <table 6>
},
<metatable> = <table 5>
},
<metatable> = <table 4>
}
},
lastName = <7>{
arguments = {},
directives = {},
name = "lastName",
selection_map = {},
selection_set = {},
<metatable> = <table 3>
}
},
selection_set = { <table 2>, {
name = "id"
} },
<metatable> = <table 3>
}
},
selection_set = { <table 1> },
type = "query",
var_defs = {},
<metatable> = <8>{
__call = <function 1>,
__index = <table 8>,
__tostring = <function 16>,
children = <function 17>,
new = <function 18>,
super = <table 4>,
<metatable> = <table 4>
}
},
operation_type = "query",
root_step = {
location = "",
next = { {
location = "http://127.0.0.1:8082",
next = { {
insertion_point = { "allUsers" },
location = "http://127.0.0.1:8081",
parent_type = "User",
query_string = "query ($id: ID!) {\n node(id: $id) {\n ... on User {\n User\n }\n }\n }",
selection_set = { <table 7> }
} },
parent_type = "query",
query_string = "query {\n query {\n firstName\n id\n }\n }",
selection_set = { <table 1> }
} },
parent_type = "query",
query_string = "query {\n id\n }",
selection_set = { {
name = "id"
} }
}
} }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment