run method

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

Runs this command.

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

Implementation

@override
Future<int> run() async {
  final projectRoot = Directory.current.path;

  try {
    Logger.bold('\nInitializing Fyarn UI...');

    // 1. Setup Infra
    final templatesPath = await resolveTemplatesPath();
    final loader = TemplateLoader(templatesPath);

    // 2. Setup Pipeline
    final engine = PipelineEngine();
    engine.addStage(EnvironmentStage());
    engine.addStage(GraphBuilderStage(loader));
    engine.addStage(ResolutionStage());
    engine.addStage(RenderingStage(loader));
    engine.addStage(PersistenceStage());
    engine.addStage(FormatStage());

    // 3. Execute para o componente 'tokens'
    final context = PipelineContext(
      componentName: 'tokens',
      projectRoot: projectRoot,
    );

    await engine.run(context);

    Logger.success('\nFyarn initialized! 🧶');
    return 0;
  } catch (e, s) {
    Logger.error(e.toString());
    Logger.debug(s.toString());
    return 1;
  }
}