provideCommandExecutor static method

CommandExecutor provideCommandExecutor()

CommandExecutor 인스턴스를 생성합니다.

Implementation

static CommandExecutor provideCommandExecutor() {
  // DataSources
  final fileSystemDataSource = FileSystemDataSourceImpl();
  final projectDataSource = ProjectDataSourceImpl();
  final templateDataSource = TemplateDataSourceImpl();
  final commandDataSource = CommandDataSourceImpl();

  // Repositories
  final FileSystemRepository fileSystemRepository = FileSystemRepositoryImpl(fileSystemDataSource);
  final ProjectRepository projectRepository = ProjectRepositoryImpl(projectDataSource);
  final TemplateRepository templateRepository = TemplateRepositoryImpl(templateDataSource);
  final FilePathRepository filePathRepository = FilePathRepositoryImpl();
  final CommandRepository commandRepository = CommandRepositoryImpl(
    commandDataSource,
    CommandOptions.getDefaultOptions(),
  );

  // FileGeneratorRepository
  final FileGeneratorRepository fileGeneratorRepository = FileGeneratorRepositoryImpl(
    projectRepository: projectRepository,
    filePathRepository: filePathRepository,
    fileSystemRepository: fileSystemRepository,
    templateRepository: templateRepository,
  );

  // CommandExecutor
  return CommandExecutor(
    commandRepository: commandRepository,
    fileGeneratorRepository: fileGeneratorRepository,
  );
}