...
1 package gqlparser
2
3 import (
4 "github.com/vektah/gqlparser/ast"
5 "github.com/vektah/gqlparser/gqlerror"
6 "github.com/vektah/gqlparser/parser"
7 "github.com/vektah/gqlparser/validator"
8 _ "github.com/vektah/gqlparser/validator/rules"
9 )
10
11 func LoadSchema(str ...*ast.Source) (*ast.Schema, *gqlerror.Error) {
12 return validator.LoadSchema(append([]*ast.Source{validator.Prelude}, str...)...)
13 }
14
15 func MustLoadSchema(str ...*ast.Source) *ast.Schema {
16 s, err := validator.LoadSchema(append([]*ast.Source{validator.Prelude}, str...)...)
17 if err != nil {
18 panic(err)
19 }
20 return s
21 }
22
23 func LoadQuery(schema *ast.Schema, str string) (*ast.QueryDocument, gqlerror.List) {
24 query, err := parser.ParseQuery(&ast.Source{Input: str})
25 if err != nil {
26 return nil, gqlerror.List{err}
27 }
28 errs := validator.Validate(schema, query)
29 if errs != nil {
30 return nil, errs
31 }
32
33 return query, nil
34 }
35
36 func MustLoadQuery(schema *ast.Schema, str string) *ast.QueryDocument {
37 q, err := LoadQuery(schema, str)
38 if err != nil {
39 panic(err)
40 }
41 return q
42 }
43
View as plain text