mirror of
https://github.com/42wim/matterbridge.git
synced 2024-11-24 03:32:02 -08:00
38 lines
786 B
Go
38 lines
786 B
Go
|
package common
|
||
|
|
||
|
import (
|
||
|
"github.com/graph-gophers/graphql-go/types"
|
||
|
)
|
||
|
|
||
|
func ParseInputValue(l *Lexer) *types.InputValueDefinition {
|
||
|
p := &types.InputValueDefinition{}
|
||
|
p.Loc = l.Location()
|
||
|
p.Desc = l.DescComment()
|
||
|
p.Name = l.ConsumeIdentWithLoc()
|
||
|
l.ConsumeToken(':')
|
||
|
p.TypeLoc = l.Location()
|
||
|
p.Type = ParseType(l)
|
||
|
if l.Peek() == '=' {
|
||
|
l.ConsumeToken('=')
|
||
|
p.Default = ParseLiteral(l, true)
|
||
|
}
|
||
|
p.Directives = ParseDirectives(l)
|
||
|
return p
|
||
|
}
|
||
|
|
||
|
func ParseArgumentList(l *Lexer) types.ArgumentList {
|
||
|
var args types.ArgumentList
|
||
|
l.ConsumeToken('(')
|
||
|
for l.Peek() != ')' {
|
||
|
name := l.ConsumeIdentWithLoc()
|
||
|
l.ConsumeToken(':')
|
||
|
value := ParseLiteral(l, false)
|
||
|
args = append(args, &types.Argument{
|
||
|
Name: name,
|
||
|
Value: value,
|
||
|
})
|
||
|
}
|
||
|
l.ConsumeToken(')')
|
||
|
return args
|
||
|
}
|