generate method

Future<void> generate(
  1. String swaggerPath,
  2. String outputDir
)

Implementation

Future<void> generate(String swaggerPath, String outputDir) async {
  // Create output directory structure
  await _createDirectoryStructure(outputDir);

  // Read swagger content
  String swaggerContent;
  if (swaggerPath.startsWith('http')) {
    swaggerContent = await _fetchSwaggerFromUrl(swaggerPath);
  } else {
    swaggerContent = await File(swaggerPath).readAsString();
  }

  // Parse swagger
  dynamic swaggerDoc;

  if (swaggerPath.startsWith('http')) {
    swaggerDoc =
        loadYaml(swaggerContent, sourceUrl: Uri.tryParse(swaggerPath));
  } else {
    swaggerDoc = loadYaml(swaggerContent);
  }

  final dartMap = convertYamlToMap(swaggerDoc);

  // Generate models with json_annotation
  final structureGenerator = FluxStructureGenerator(outputDir);
  await structureGenerator.generateAll(Map<String, dynamic>.from(dartMap));

  // Create pubspec.yaml
  await _createPubspec(outputDir);

  // Create main export file
  await _createMainExportFile(outputDir);
}