generatePubspec function

String generatePubspec(
  1. ProjectConfig config
)

Generates a pubspec.yaml file content.

Returns the complete pubspec.yaml content as a string, configured with the appropriate dependencies based on the project's state management solution.

The config parameter contains the project configuration including name, type, platforms, and state management.

Implementation

String generatePubspec(ProjectConfig config) {
  final sm = config.stateManagement;
  return '''name: ${config.name}
description: A Flutter project generated by Archit CLI.
publish_to: 'none'
version: 1.0.0+1

environment:
  sdk: '>=3.3.0 <4.0.0'

dependencies:
  flutter:
    sdk: flutter

  # State Management
  ${sm.packageName}

  # Routing
${sm == StateManagement.getx ? '  # GetX handles routing internally' : '  go_router: ^14.2.7'}

  # UI
  cupertino_icons: ^1.0.8
  flutter_screenutil: ^5.9.3
  google_fonts: ^6.2.1
  flutter_svg: ^2.0.10+1
  cached_network_image: ^3.3.1
  shimmer: ^3.0.0
  loading_animation_widget: ^1.2.1
  flutter_animate: ^4.5.0
  flutter_staggered_grid_view: ^0.7.0
  flutter_rating_bar: ^4.0.1
  google_nav_bar: ^5.0.6
  badges: ^3.1.2
  awesome_dialog: ^3.2.1

  # Storage & Data
  hive: ^2.2.3
  hive_flutter: ^1.1.0
  flutter_secure_storage: ^9.2.2

  # Network
  dio: ^5.7.0

  # Utils
  logger: ^2.4.0
  intl: ^0.19.0
  image_picker: ^1.1.2
  url_launcher: ^6.3.0
  get_it: ^8.0.2
  equatable: ^2.0.5
  dartz: ^0.10.1

flutter:
  uses-material-design: true
  assets:
    - assets/images/
    - assets/icons/
    - assets/animations/

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^4.0.0
  build_runner: ^2.4.9
  hive_generator: ^2.0.1
''';
}