build method

  1. @override
Future<void> build(
  1. BuildStep buildStep
)

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,
  );
}