Skip to content

Commit bf41edb

Browse files
authored
Merge pull request #722 from graphql-java-kickstart/bugfix/716
Allow parsing large schema files
2 parents a319992 + edde512 commit bf41edb

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

Diff for: src/main/kotlin/graphql/kickstart/tools/SchemaParserBuilder.kt

+9-4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package graphql.kickstart.tools
22

33
import graphql.language.Definition
44
import graphql.language.Document
5+
import graphql.parser.MultiSourceReader
56
import graphql.parser.Parser
67
import graphql.parser.ParserOptions
78
import graphql.schema.GraphQLScalarType
@@ -168,12 +169,16 @@ class SchemaParserBuilder {
168169
val parser = Parser()
169170
val documents = mutableListOf<Document>()
170171
try {
171-
files.forEach { documents.add(parser.parseDocument(readFile(it), it)) }
172+
val options = ParserOptions
173+
.getDefaultParserOptions()
174+
.transform { o -> o.maxTokens(MAX_VALUE) }
175+
176+
files.forEach {
177+
val sourceReader = MultiSourceReader.newMultiSourceReader().string(readFile(it), it).trackData(true).build()
178+
documents.add(parser.parseDocument(sourceReader, options))
179+
}
172180

173181
if (schemaString.isNotEmpty()) {
174-
val options = ParserOptions
175-
.getDefaultParserOptions()
176-
.transform { o -> o.maxTokens(MAX_VALUE) }
177182
documents.add(parser.parseDocument(schemaString.toString(), options))
178183
}
179184
} catch (pce: ParseCancellationException) {

0 commit comments

Comments
 (0)