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/app", "main_app.dart", mainAppTemplate);
  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,
  );
  createDirectoryWithFile(
    "lib/core/data/repositories",
    "base_repository.dart",
    baseRepositoryTemplate,
  );
  createDirectoryWithFile(
    "lib/core/database",
    "app_database.dart",
    appDatabaseTemplate,
  );
  createDirectoryWithFile(
    "lib/core/date_picker",
    "app_date_picker.dart",
    appDatePickerTemplate,
  );
  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/locations",
    "location_service.dart",
    locationServiceTemplate,
  );
  createDirectoryWithFile(
    "lib/core/models",
    "base_model.dart",
    baseModelTemplate,
  );
  createDirectoryWithFile(
    "lib/core/navigation",
    "app_navigator.dart",
    appNavigatorTemplate,
  );
  createDirectoryWithFile(
    "lib/core/network",
    "network_info.dart",
    networkInfoTemplate,
  );
  createDirectoryWithFile(
    "lib/core/network/interceptors",
    "auth_interceptor.dart",
    authInterceptorTemplate,
  );
  createDirectoryWithFile(
    "lib/core/platform",
    "platform_info.dart",
    platformInfoTemplate,
  );
  createDirectoryWithFile(
    "lib/core/router",
    "app_router.dart",
    appRouterTemplate,
  );
  createDirectoryWithFile(
    "lib/core/security",
    "security_service.dart",
    securityServiceTemplate,
  );
  createDirectoryWithFile(
    "lib/core/services",
    "api_service.dart",
    apiServiceTemplate,
  );
  createDirectoryWithFile(
    "lib/core/services",
    "app_update_service.dart",
    appUpdateServiceTemplate,
  );
  createDirectoryWithFile(
    "lib/core/shared/widgets",
    "custom_button.dart",
    customButtonTemplate,
  );
  createDirectoryWithFile(
    "lib/core/storage",
    "local_storage.dart",
    localStorageTemplate,
  );
  createDirectoryWithFile(
    "lib/core/sync",
    "sync_manager.dart",
    syncManagerTemplate,
  );
  createDirectoryWithFile("lib/core/theme", "app_theme.dart", appThemeTemplate);
  createDirectoryWithFile(
    "lib/core/utils",
    "extensions.dart",
    extensionsTemplate,
  );
  createDirectoryWithFile(
    "lib/core/validation",
    "form_validators.dart",
    formValidatorsTemplate,
  );

  createDirectory("lib/features");

  logSuccess("Clean architecture initialized.");
}