...
1 package ast
2
3 type DirectiveLocation string
4
5 const (
6
7 LocationQuery DirectiveLocation = `QUERY`
8 LocationMutation DirectiveLocation = `MUTATION`
9 LocationSubscription DirectiveLocation = `SUBSCRIPTION`
10 LocationField DirectiveLocation = `FIELD`
11 LocationFragmentDefinition DirectiveLocation = `FRAGMENT_DEFINITION`
12 LocationFragmentSpread DirectiveLocation = `FRAGMENT_SPREAD`
13 LocationInlineFragment DirectiveLocation = `INLINE_FRAGMENT`
14
15
16 LocationSchema DirectiveLocation = `SCHEMA`
17 LocationScalar DirectiveLocation = `SCALAR`
18 LocationObject DirectiveLocation = `OBJECT`
19 LocationFieldDefinition DirectiveLocation = `FIELD_DEFINITION`
20 LocationArgumentDefinition DirectiveLocation = `ARGUMENT_DEFINITION`
21 LocationInterface DirectiveLocation = `INTERFACE`
22 LocationUnion DirectiveLocation = `UNION`
23 LocationEnum DirectiveLocation = `ENUM`
24 LocationEnumValue DirectiveLocation = `ENUM_VALUE`
25 LocationInputObject DirectiveLocation = `INPUT_OBJECT`
26 LocationInputFieldDefinition DirectiveLocation = `INPUT_FIELD_DEFINITION`
27 LocationVariableDefinition DirectiveLocation = `VARIABLE_DEFINITION`
28 )
29
30 type Directive struct {
31 Name string
32 Arguments ArgumentList
33 Position *Position `dump:"-"`
34
35
36 ParentDefinition *Definition
37 Definition *DirectiveDefinition
38 Location DirectiveLocation
39 }
40
41 func (d *Directive) ArgumentMap(vars map[string]interface{}) map[string]interface{} {
42 return arg2map(d.Definition.Arguments, d.Arguments, vars)
43 }
44
View as plain text