in aws-android-sdk-appsync-gradle-plugin/src/main/java/com/apollographql/apollo/gradle/ApolloIRGenTask.java [65:126]
public void exec() {
File schemaFile = null;
if (extension.getSchemaFilePath() != null) {
schemaFile = Paths.get(extension.getSchemaFilePath()).toFile();
if (!schemaFile.exists()) {
schemaFile = Paths.get(getProject().getRootDir().getAbsolutePath(), extension.getSchemaFilePath()).toFile();
}
if (!schemaFile.exists()) {
throw new GradleException("Provided schema file path doesn't exists: " + extension.getSchemaFilePath() +
". Please ensure a valid schema file exists");
}
}
File targetPackageFolder = null;
if (schemaFile != null) {
if (extension.getOutputPackageName() == null || extension.getOutputPackageName().trim().isEmpty()) {
throw new GradleException("Missing explicit targetPackageName option. Please ensure a valid package name is provided");
} else {
targetPackageFolder = new File(outputFolder.getAbsolutePath()
+ File.separator + "src"
+ File.separator + "main"
+ File.separator + "graphql"
+ File.separator + extension.getOutputPackageName().replace(".", File.separator));
}
}
File apolloScript = new File(getProject().getBuildDir(), APOLLO_CODEGEN);
if (!apolloScript.isFile()) {
throw new GradleException("Apollo-codegen was not found in node_modules. Please run the installApolloCodegen task.");
}
setScript(apolloScript);
final List<ApolloCodegenArgs> codegenArgs;
if (schemaFile == null) {
codegenArgs = codeGenArgs(getInputs().getSourceFiles().getFiles());
} else {
Set<String> queryFilePaths = new HashSet<>();
for (File queryFile : queryFilesFrom(getInputs().getSourceFiles().getFiles())) {
queryFilePaths.add(queryFile.getAbsolutePath());
}
codegenArgs = Collections.singletonList(new ApolloCodegenArgs(schemaFile, queryFilePaths, targetPackageFolder));
}
for (ApolloCodegenArgs codegenArg : codegenArgs) {
codegenArg.irOutputFolder.mkdirs();
List<String> apolloArgs = new ArrayList<>();
apolloArgs.add("generate");
apolloArgs.addAll(codegenArg.queryFilePaths);
apolloArgs.addAll(Arrays.asList(
"--add-typename",
"--schema", codegenArg.schemaFile.getAbsolutePath(),
"--output", codegenArg.irOutputFolder.getAbsolutePath() + File.separator + Utils.capitalize(variant) + "API.json",
"--operation-ids-path", codegenArg.irOutputFolder.getAbsolutePath() + File.separator + Utils.capitalize(variant) + "OperationIdMap.json",
"--merge-in-fields-from-fragment-spreads", "false",
"--target", "json"
));
setArgs(apolloArgs);
super.exec();
}
}