MCPcopy Create free account
hub / github.com/vektah/gqlparser / parseQueryDocument

Method parseQueryDocument

parser/query.go:24–49  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

22}
23
24func (p *parser) parseQueryDocument() *QueryDocument {
25 var doc QueryDocument
26 for p.peek().Kind != lexer.EOF {
27 if p.err != nil {
28 return &doc
29 }
30 doc.Position = p.peekPos()
31 switch p.peek().Kind {
32 case lexer.Name:
33 switch p.peek().Value {
34 case "query", "mutation", "subscription":
35 doc.Operations = append(doc.Operations, p.parseOperationDefinition())
36 case "fragment":
37 doc.Fragments = append(doc.Fragments, p.parseFragmentDefinition())
38 default:
39 p.unexpectedError()
40 }
41 case lexer.BraceL:
42 doc.Operations = append(doc.Operations, p.parseOperationDefinition())
43 default:
44 p.unexpectedError()
45 }
46 }
47
48 return &doc
49}
50
51func (p *parser) parseOperationDefinition() *OperationDefinition {
52 if p.peek().Kind == lexer.BraceL {

Callers 2

ParseQueryFunction · 0.95
ParseQueryWithTokenLimitFunction · 0.95

Calls 5

peekMethod · 0.95
peekPosMethod · 0.95
unexpectedErrorMethod · 0.95

Tested by

no test coverage detected