generateArchitecture function

void generateArchitecture()

Scaffolds the full Clean Architecture core layer inside lib/core/.

Creates every standard sub-directory and writes a starter .dart file into each one so the directories are never empty.

Implementation

void generateArchitecture() {
  logInfo("Initializing Clean Architecture...");

  createDirectoryWithFile(
    "lib/core/config",
    "app_config.dart",
    appConfigTemplate,
  );
  createDirectoryWithFile(
    "lib/core/constants",
    "app_constants.dart",
    appConstantsTemplate,
  );
  createDirectoryWithFile(
    "lib/core/data/datasources/local",
    "local_datasource.dart",
    localDatasourceTemplate,
  );
  createDirectoryWithFile(
    "lib/core/data/datasources/remote",
    "remote_datasource.dart",
    remoteDatasourceTemplate,
  );
  createDirectory("lib/core/data/models");
  createDirectoryWithFile(
    "lib/core/data/repositories",
    "base_repository.dart",
    baseRepositoryTemplate,
  );
  createDirectoryWithFile(
    "lib/core/di",
    "injection_container.dart",
    injectionContainerTemplate,
  );
  createDirectoryWithFile("lib/core/errors", "failures.dart", failuresTemplate);
  createDirectoryWithFile(
    "lib/core/errors",
    "exceptions.dart",
    exceptionsTemplate,
  );
  createDirectoryWithFile(
    "lib/core/network/interceptors",
    "auth_interceptor.dart",
    authInterceptorTemplate,
  );
  createDirectoryWithFile("lib/core/usecases", "usecase.dart", usecaseTemplate);
  createDirectoryWithFile(
    "lib/core/utils",
    "extensions.dart",
    extensionsTemplate,
  );
  createDirectoryWithFile(
    "lib/core/route",
    "app_router.dart",
    appRouterTemplate,
  );
  createDirectoryWithFile(
    "lib/core/storage",
    "local_storage.dart",
    localStorageTemplate,
  );
  createDirectoryWithFile(
    "lib/core/services",
    "api_service.dart",
    apiServiceTemplate,
  );
  createDirectoryWithFile(
    "lib/core/shared/widgets",
    "custom_button.dart",
    customButtonTemplate,
  );
  createDirectoryWithFile(
    "lib/core/shared/mixins",
    "validation_mixin.dart",
    validationMixinTemplate,
  );
  createDirectoryWithFile("lib/core/theme", "app_theme.dart", appThemeTemplate);

  createDirectory("lib/features");

  logSuccess("Clean architecture initialized.");
}