build method
Generates the outputs for a given BuildStep
.
Implementation
@override
Future<void> build(BuildStep buildStep) async {
if (buildStep.inputId.path == additionalResultPath) {
for (final url in options.inputUrls) {
final fileNameWithExtension = getFileNameBase(url.fileName ?? url.url);
final contents = await _download(url.url);
final filePath = join(options.inputFolder, fileNameWithExtension);
await File(filePath).create();
await File(filePath).writeAsString(contents);
}
await _generateAdditionalFiles(
buildStep.inputId,
buildStep,
true,
allFiledList.toList(),
);
}
final file = File(buildStep.inputId.path);
var contents = await file.readAsString();
Map<String, dynamic> contentMap;
if (buildStep.inputId.path.endsWith('.yaml')) {
final t = loadYaml(contents) as YamlMap;
contentMap = t.toMap();
} else {
contentMap = jsonDecode(contents) as Map<String, dynamic>;
}
final SwaggerRoot parsed = SwaggerRoot.fromJson(contentMap);
final fileNameWithExtension = getFileNameBase(buildStep.inputId.path);
final fileNameWithoutExtension = removeFileExtension(fileNameWithExtension);
await _generateAndWriteFile(
contents: parsed,
buildStep: buildStep,
fileNameWithExtension: fileNameWithExtension,
fileNameWithoutExtension: fileNameWithoutExtension,
);
}