Skip to content

Commit

Permalink
Generate only required types for unions and interfaces.
Browse files Browse the repository at this point in the history
  • Loading branch information
srinivasankavitha committed Oct 7, 2022
1 parent 2934843 commit 5e44693
Showing 1 changed file with 2 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -196,24 +196,19 @@ class CodeGen(private val config: CodeGenConfig) {
}

private fun generateJavaUnions(definitions: Collection<Definition<*>>): CodeGenResult {
if (!config.generateDataTypes) {
return CodeGenResult()
}
return definitions.asSequence()
.filterIsInstance<UnionTypeDefinition>()
.excludeSchemaTypeExtension()
.filter { config.generateDataTypes || config.generateInterfaces || it.name in requiredTypeCollector.requiredTypes }
.map { UnionTypeGenerator(config).generate(it, findUnionExtensions(it.name, definitions)) }
.fold(CodeGenResult()) { t: CodeGenResult, u: CodeGenResult -> t.merge(u) }
}

private fun generateJavaInterfaces(definitions: Collection<Definition<*>>): CodeGenResult {
if (!config.generateDataTypes && !config.generateInterfaces) {
return CodeGenResult()
}

return definitions.asSequence()
.filterIsInstance<InterfaceTypeDefinition>()
.excludeSchemaTypeExtension()
.filter { config.generateDataTypes || config.generateInterfaces || it.name in requiredTypeCollector.requiredTypes }
.map {
val extensions = findInterfaceExtensions(it.name, definitions)
InterfaceGenerator(config, document).generate(it, extensions)
Expand Down

0 comments on commit 5e44693

Please sign in to comment.