diff options
author | Michael Muré <batolettre@gmail.com> | 2018-12-23 17:11:37 +0100 |
---|---|---|
committer | Michael Muré <batolettre@gmail.com> | 2018-12-23 17:11:37 +0100 |
commit | 1410a1af75b1ab9ea3f980a7e372728f9a123abf (patch) | |
tree | e24db8f84c48b20158b1f1fd6d281d700421279c /vendor/github.com/vektah/gqlparser/parser/schema.go | |
parent | 8fc15a032f021c855abf66ed303c003d57c340ea (diff) | |
download | git-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.go | 38 |
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 { |