Skip to content

Commit e2010ee

Browse files
KCreatePascalHonegger
authored andcommitted
feat(codegen): Add API to register transport parsers
1 parent bb1b959 commit e2010ee

3 files changed

Lines changed: 9 additions & 4 deletions

File tree

cli/src/main/kotlin/tools/samt/cli/CliCompiler.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package tools.samt.cli
22

33
import tools.samt.codegen.Codegen
4+
import tools.samt.codegen.http.HttpTransportConfigurationParser
45
import tools.samt.common.DiagnosticController
56
import tools.samt.common.DiagnosticException
67
import tools.samt.common.collectSamtFiles
@@ -71,6 +72,7 @@ internal fun compile(command: CompileCommand, controller: DiagnosticController)
7172
Codegen.registerGenerator(KotlinTypesGenerator)
7273
Codegen.registerGenerator(KotlinKtorProviderGenerator)
7374
Codegen.registerGenerator(KotlinKtorConsumerGenerator)
75+
Codegen.registerTransportParser(HttpTransportConfigurationParser)
7476

7577
for (generatorConfig in configuration.generators) {
7678
val files = Codegen.generate(model, generatorConfig, controller)

codegen/src/main/kotlin/tools/samt/codegen/Codegen.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import tools.samt.api.plugin.Generator
55
import tools.samt.api.plugin.GeneratorParams
66
import tools.samt.api.plugin.TransportConfigurationParser
77
import tools.samt.api.types.SamtPackage
8-
import tools.samt.codegen.http.HttpTransportConfigurationParser
98
import tools.samt.common.DiagnosticController
109
import tools.samt.common.SamtGeneratorConfiguration
1110
import tools.samt.semantic.SemanticModel
@@ -17,9 +16,11 @@ object Codegen {
1716
generators += generator
1817
}
1918

20-
private val transports: List<TransportConfigurationParser> = listOf(
21-
HttpTransportConfigurationParser,
22-
)
19+
private val transports: MutableList<TransportConfigurationParser> = mutableListOf()
20+
21+
fun registerTransportParser(parser: TransportConfigurationParser) {
22+
transports += parser
23+
}
2324

2425
internal class SamtGeneratorParams(
2526
semanticModel: SemanticModel,

codegen/src/test/kotlin/tools/samt/codegen/CodegenTest.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package tools.samt.codegen
22

33
import tools.samt.api.plugin.CodegenFile
4+
import tools.samt.codegen.http.HttpTransportConfigurationParser
45
import tools.samt.common.DiagnosticController
56
import tools.samt.common.collectSamtFiles
67
import tools.samt.common.readSamtSource
@@ -49,6 +50,7 @@ class CodegenTest {
4950
Codegen.registerGenerator(KotlinTypesGenerator)
5051
Codegen.registerGenerator(KotlinKtorProviderGenerator)
5152
Codegen.registerGenerator(KotlinKtorConsumerGenerator)
53+
Codegen.registerTransportParser(HttpTransportConfigurationParser)
5254

5355
val actualFiles = mutableListOf<CodegenFile>()
5456
for (generator in configuration.generators) {

0 commit comments

Comments
 (0)