in generator/src/main/kotlin/space/jetbrains/api/generator/Main.kt [77:107]
fun main(vararg args: String) {
require(args.size in 2..3 && args.getOrNull(2)?.equals("--no-cleanup") != false) {
// GET /api/http/http-api-model?$fields=dto(id,deprecation,extends,fields,hierarchyRole,implements,inheritors,
// name,record),enums(id,deprecation,name,values),resources(id,displayPlural,displaySingular,endpoints,
// nestedResources!,parentResource,path)
"HTTP Client Generator accepts two or three arguments: path to HTTP model, path to output directory and, " +
"optionally, '--no-cleanup'"
}
Log.info { "Parsing HTTP model" }
val model = HttpApiEntitiesById(jackson.readValue(File(args[0])))
val out = File(args[1])
if (out.exists() && args.size != 3) out.deleteRecursively()
out.mkdirs()
Log.info { "Generating types for SDK" }
val generatedTypes = generateTypes(model)
Log.info { "Generating resources for SDK" }
val generatedResources = generateResources(model)
Log.info { "Generating structures for SDK" }
val generatedStructures = generateStructures(model)
Log.info { "Generating partials for SDK" }
val generatedPartials = generatePartials(model)
Log.info { "Generating feature flags for SDK" }
val generatedFeatureFlags = generateFeatureFlags(model)
(generatedTypes + generatedResources + generatedStructures + generatedPartials + generatedFeatureFlags).forEach {
it.writeTo(out)
}
}