copyWith method

ProjectConfig copyWith({
  1. String? appName,
  2. String? displayName,
  3. String? androidPackage,
  4. String? iosBundleId,
  5. StateManagement? stateManagement,
  6. bool? useFirebase,
  7. bool? useSecretKey,
  8. StateManagementArchitecture? blocArchitecture,
  9. StateManagementArchitecture? riverpodArchitecture,
  10. Set<PlatformTarget>? platformTargets,
  11. CiCdScope? ciCdScope,
  12. CiCdProvider? ciCdProvider,
  13. GitLabRunnerMode? gitlabRunnerMode,
  14. Set<DeployTarget>? deployTargets,
  15. String? projectRoot,
  16. GuideLanguage? guideLanguage,
  17. SessionStorageKeys? sessionStorageKeys,
})

Copy of this config with selected fields replaced.

Used by setup commands to flip one integration (Firebase, secret key, CI/CD, platforms) without dropping the rest of the detected project.

Implementation

ProjectConfig copyWith({
  String? appName,
  String? displayName,
  String? androidPackage,
  String? iosBundleId,
  StateManagement? stateManagement,
  bool? useFirebase,
  bool? useSecretKey,
  StateManagementArchitecture? blocArchitecture,
  StateManagementArchitecture? riverpodArchitecture,
  Set<PlatformTarget>? platformTargets,
  CiCdScope? ciCdScope,
  CiCdProvider? ciCdProvider,
  GitLabRunnerMode? gitlabRunnerMode,
  Set<DeployTarget>? deployTargets,
  String? projectRoot,
  GuideLanguage? guideLanguage,
  SessionStorageKeys? sessionStorageKeys,
}) {
  return ProjectConfig(
    appName: appName ?? this.appName,
    displayName: displayName ?? this.displayName,
    androidPackage: androidPackage ?? this.androidPackage,
    iosBundleId: iosBundleId ?? this.iosBundleId,
    stateManagement: stateManagement ?? this.stateManagement,
    useFirebase: useFirebase ?? this.useFirebase,
    useSecretKey: useSecretKey ?? this.useSecretKey,
    blocArchitecture: blocArchitecture ?? this.blocArchitecture,
    riverpodArchitecture: riverpodArchitecture ?? this.riverpodArchitecture,
    platformTargets: platformTargets ?? this.platformTargets,
    ciCdScope: ciCdScope ?? this.ciCdScope,
    ciCdProvider: ciCdProvider ?? this.ciCdProvider,
    gitlabRunnerMode: gitlabRunnerMode ?? this.gitlabRunnerMode,
    deployTargets: deployTargets ?? this.deployTargets,
    projectRoot: projectRoot ?? this.projectRoot,
    guideLanguage: guideLanguage ?? this.guideLanguage,
    sessionStorageKeys: sessionStorageKeys ?? this.sessionStorageKeys,
  );
}