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 {
  const moduleResolver = ModuleDependencyResolver();

  final isStrict = (globalResults?['strict'] as bool?) ?? false;
  final moduleCreator = ModuleCreator(
    moduleResolver,
    smfModules,
    coreModuleKeys: const [
      kFlutterCoreModule,
      kContractsModule,
    ],
  );
  final preferences = CreatePrompt(creator: moduleCreator).prompt(
    argResults,
    allowedModules: allowedModules,
    strictMode: isStrict ? StrictMode.strict : StrictMode.lenient,
    logger: logger,
  );

  return SafeGenerationRunner().run(
    CliContext(
      name: preferences.name,
      packageName: preferences.packageName,
      selectedModules: preferences.selectedModules,
      outputDirectory: argResults?['output'] as String? ?? './',
      initialRoute: preferences.initialRoute,
      strictMode: isStrict ? StrictMode.strict : StrictMode.lenient,
      logger: logger,
      moduleResolver: moduleResolver,
    ),
    onConflict: globalResults?['on-conflict'] as String? ?? 'prompt',
  );
}