aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/vektah/gqlparser/parser/schema.go
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2018-12-23 17:11:37 +0100
committerMichael Muré <batolettre@gmail.com>2018-12-23 17:11:37 +0100
commit1410a1af75b1ab9ea3f980a7e372728f9a123abf (patch)
treee24db8f84c48b20158b1f1fd6d281d700421279c /vendor/github.com/vektah/gqlparser/parser/schema.go
parent8fc15a032f021c855abf66ed303c003d57c340ea (diff)
downloadgit-bug-1410a1af75b1ab9ea3f980a7e372728f9a123abf.tar.gz
upgrade gqlgen to v0.7.1
Diffstat (limited to 'vendor/github.com/vektah/gqlparser/parser/schema.go')
-rw-r--r--vendor/github.com/vektah/gqlparser/parser/schema.go38
1 files changed, 31 insertions, 7 deletions
diff --git a/vendor/github.com/vektah/gqlparser/parser/schema.go b/vendor/github.com/vektah/gqlparser/parser/schema.go
index f409f1f4..5689e433 100644
--- a/vendor/github.com/vektah/gqlparser/parser/schema.go
+++ b/vendor/github.com/vektah/gqlparser/parser/schema.go
@@ -10,7 +10,31 @@ func ParseSchema(source *Source) (*SchemaDocument, *gqlerror.Error) {
p := parser{
lexer: lexer.New(source),
}
- return p.parseSchemaDocument(), p.err
+ ast, err := p.parseSchemaDocument(), p.err
+ if err != nil {
+ return nil, err
+ }
+
+ for _, def := range ast.Definitions {
+ def.BuiltIn = source.BuiltIn
+ }
+ for _, def := range ast.Extensions {
+ def.BuiltIn = source.BuiltIn
+ }
+
+ return ast, nil
+}
+
+func ParseSchemas(inputs ...*Source) (*SchemaDocument, *gqlerror.Error) {
+ ast := &SchemaDocument{}
+ for _, input := range inputs {
+ inputAst, err := ParseSchema(input)
+ if err != nil {
+ return nil, err
+ }
+ ast.Merge(inputAst)
+ }
+ return ast, nil
}
func (p *parser) parseSchemaDocument() *SchemaDocument {
@@ -96,7 +120,7 @@ func (p *parser) parseSchemaDefinition(description string) *SchemaDefinition {
def.Description = description
def.Directives = p.parseDirectives(true)
- p.many(lexer.BraceL, lexer.BraceR, func() {
+ p.some(lexer.BraceL, lexer.BraceR, func() {
def.OperationTypes = append(def.OperationTypes, p.parseOperationTypeDefinition())
})
return &def
@@ -154,7 +178,7 @@ func (p *parser) parseImplementsInterfaces() []string {
func (p *parser) parseFieldsDefinition() FieldList {
var defs FieldList
- p.many(lexer.BraceL, lexer.BraceR, func() {
+ p.some(lexer.BraceL, lexer.BraceR, func() {
defs = append(defs, p.parseFieldDefinition())
})
return defs
@@ -175,7 +199,7 @@ func (p *parser) parseFieldDefinition() *FieldDefinition {
func (p *parser) parseArgumentDefs() ArgumentDefinitionList {
var args ArgumentDefinitionList
- p.many(lexer.ParenL, lexer.ParenR, func() {
+ p.some(lexer.ParenL, lexer.ParenR, func() {
args = append(args, p.parseArgumentDef())
})
return args
@@ -264,7 +288,7 @@ func (p *parser) parseEnumTypeDefinition(description string) *Definition {
func (p *parser) parseEnumValuesDefinition() EnumValueList {
var values EnumValueList
- p.many(lexer.BraceL, lexer.BraceR, func() {
+ p.some(lexer.BraceL, lexer.BraceR, func() {
values = append(values, p.parseEnumValueDefinition())
})
return values
@@ -294,7 +318,7 @@ func (p *parser) parseInputObjectTypeDefinition(description string) *Definition
func (p *parser) parseInputFieldsDefinition() FieldList {
var values FieldList
- p.many(lexer.BraceL, lexer.BraceR, func() {
+ p.some(lexer.BraceL, lexer.BraceR, func() {
values = append(values, p.parseInputValueDef())
})
return values
@@ -329,7 +353,7 @@ func (p *parser) parseSchemaExtension() *SchemaDefinition {
var def SchemaDefinition
def.Position = p.peekPos()
def.Directives = p.parseDirectives(true)
- p.many(lexer.BraceL, lexer.BraceR, func() {
+ p.some(lexer.BraceL, lexer.BraceR, func() {
def.OperationTypes = append(def.OperationTypes, p.parseOperationTypeDefinition())
})
if len(def.Directives) == 0 && len(def.OperationTypes) == 0 {