run method

  1. @override
Future<void> run()
override

Runs this command.

The return value is wrapped in a Future if necessary and returned by CommandRunner.runCommand.

Implementation

@override
Future<void> run() async {
  final dynamic root = argResults!['output'];
  final dynamic input = argResults!['input'];
  final dynamic backendName = argResults!['backend-name'];
  final dynamic newFiles = argResults!['new'];

  if (root is! String) {
    throw ArgumentError.value(root, 'output', 'Must be a string.');
  }
  if (input is! String) {
    throw ArgumentError.value(input, 'input', 'Must be a string.');
  }
  if (backendName is! String) {
    throw ArgumentError.value(
      backendName,
      'backend-name',
      'Must be a string.',
    );
  }
  if (newFiles is! bool) {
    throw ArgumentError.value(newFiles, 'new', 'Must be a bool.');
  }

  final api = await parseApi(input);
  print('Open API File Parsed');
  await generateApiFiles(
    Api.fromOpenApi(
      api,
      backendName: backendName,
    ),
    rootPath: root,
    generateInitial: newFiles,
  );

  print('Backend Code Generated');
}