createCleanPattern function

Future<void> createCleanPattern()

Implementation

Future<void> createCleanPattern() async {
  var canContinue = await createMain();
  if (!canContinue) return;

  var isServerProject = PubspecUtils.isServerProject;
  if (!isServerProject) {
    await installGet();
  }
  var initialDirs = [
    // data
    Directory(Structure.replaceAsExpected(path: 'lib/data/')),
    Directory(Structure.replaceAsExpected(path: 'lib/data/mappers/')),
    Directory(Structure.replaceAsExpected(path: 'lib/data/local/')),
    Directory(Structure.replaceAsExpected(path: 'lib/data/remote/')),
    Directory(Structure.replaceAsExpected(path: 'lib/data/repositories/')),
    // di
    Directory(Structure.replaceAsExpected(path: 'lib/di/')),
    // domain
    Directory(Structure.replaceAsExpected(path: 'lib/domain/')),
    Directory(Structure.replaceAsExpected(path: 'lib/domain/entities/')),
    Directory(Structure.replaceAsExpected(path: 'lib/domain/enums')),
    Directory(Structure.replaceAsExpected(path: 'lib/domain/repositories/')),
    Directory(Structure.replaceAsExpected(path: 'lib/domain/use_cases/')),
    // presentation
    Directory(Structure.replaceAsExpected(path: 'lib/presentation/')),
    Directory(Structure.replaceAsExpected(path: 'lib/presentation/base/')),
    Directory(Structure.replaceAsExpected(path: 'lib/presentation/resources/')),
    Directory(Structure.replaceAsExpected(path: 'lib/presentation/routers/')),
    Directory(Structure.replaceAsExpected(path: 'lib/presentation/views/')),
    Directory(
        Structure.replaceAsExpected(path: 'lib/presentation/views/screens/')),
    Directory(
        Structure.replaceAsExpected(path: 'lib/presentation/views/dialogs/')),
    Directory(
        Structure.replaceAsExpected(path: 'lib/presentation/views/widgets/')),
    Directory(Structure.replaceAsExpected(path: 'lib/utils/')),
  ];
  // init main.dart
  ProviderMainSample(isServer: isServerProject).create();
  // presentation
  BaseScreenSample().create();
  BaseControllerSample().create();
  BaseStateSample().create();
  UninitializedWidgetSample().create();
  ErrorDialogSample().create();
  LoadingDialogSample().create();
  RouterSample().create();
  // domain
  IUseCaseSample().create();
  ErrorEntitySample().create();
  // data
  // ErrorHandlerSample().create();
  // di
  DISample().create();

  // init sample screen
  await Future.wait([
    CreateScreenCommand().execute(),
  ]);
  createListDirectory(initialDirs);

  LogService.success(Translation(LocaleKeys.sucess_clean_Pattern_generated));
}