in graphql-dgs-codegen-core/src/main/kotlin/com/netflix/graphql/dgs/codegen/CodeGenCli.kt [74:143]
override fun run() {
val inputSchemas =
if (schemas.isEmpty()) {
val defaultSchemaPath = Paths.get("src", "main", "resources", "schema")
if (defaultSchemaPath.toFile().exists()) {
echo("No schema files or directories specified, defaulting to src/main/resources/schema")
setOf(defaultSchemaPath.toFile())
} else {
throw UsageError("No schema file(s) specified")
}
} else {
schemas.toSet()
}
val generate =
CodeGen(
if (packageName != null) {
CodeGenConfig(
schemaFiles = inputSchemas,
writeToFiles = writeFiles,
outputDir = output.toPath(),
packageName = packageName!!,
subPackageNameClient = subPackageNameClient,
subPackageNameDatafetchers = subPackageNameDatafetchers,
subPackageNameTypes = subPackageNameTypes,
language = Language.valueOf(language.uppercase()),
generateBoxedTypes = generateBoxedTypes,
generateClientApi = generateClient,
includeQueries = includeQueries,
includeMutations = includeMutations,
skipEntityQueries = skipEntityQueries,
typeMapping = typeMapping,
shortProjectionNames = shortProjectionNames,
generateDataTypes = generateDataTypes,
generateInterfaces = generateInterfaces,
generateInterfaceSetters = generateInterfaceSetters,
generateDocs = generateDocs,
)
} else {
CodeGenConfig(
schemaFiles = inputSchemas,
writeToFiles = writeFiles,
outputDir = output.toPath(),
subPackageNameClient = subPackageNameClient,
subPackageNameDatafetchers = subPackageNameDatafetchers,
subPackageNameTypes = subPackageNameTypes,
language = Language.valueOf(language.uppercase()),
generateBoxedTypes = generateBoxedTypes,
generateClientApi = generateClient,
includeQueries = includeQueries,
includeMutations = includeMutations,
skipEntityQueries = skipEntityQueries,
typeMapping = typeMapping,
shortProjectionNames = shortProjectionNames,
generateDataTypes = generateDataTypes,
generateInterfaces = generateInterfaces,
generateInterfaceSetters = generateInterfaceSetters,
generateDocs = generateDocs,
)
},
).generate()
if (writeFiles) {
echo(
"${(generate.javaDataTypes + generate.javaInterfaces + generate.javaEnumTypes + generate.javaQueryTypes + generate.clientProjections + generate.javaConstants).size} files written to ${output.absoluteFile}",
)
} else {
echo(generate)
}
}