view_model_generator 0.1.1-dev.1 copy "view_model_generator: ^0.1.1-dev.1" to clipboard
view_model_generator: ^0.1.1-dev.1 copied to clipboard

Automatically generate ViewModelProvider code from @genProvider annotations. Reduces boilerplate for the view_model package.

view_model_generator #

Code generator for the view_model package. This package generates ViewModelProviders for your ViewModels, simplifying dependency injection and instance management.

Installation #

Add view_model and view_model_generator to your pubspec.yaml:

dependencies:
  view_model: ^latest_version

dev_dependencies:
  build_runner: ^latest_version
  view_model_generator: ^latest_version

Usage #

  1. Annotate your ViewModel class with @genProvider.
  2. Run the build runner.

1. Annotate #

import 'package:view_model/view_model.dart';

part 'my_view_model.vm.dart';

@genProvider
class MyViewModel extends ViewModel {
  MyViewModel();
}

2. Run Build Runner #

Run the following command in your terminal:

dart run build_runner build

This will generate a my_view_model.vm.dart file containing the myViewModelProvider.

Generated Code #

The generator creates a global ViewModelProvider variable for each annotated class.

For a class named MyViewModel, it generates:

final myViewModelProvider = ViewModelProvider<MyViewModel>(
  builder: () => MyViewModel(),
);

If your ViewModel has dependencies in its constructor, the generator supports up to 4 arguments and will generate ViewModelProvider.arg1, ViewModelProvider.arg2, etc.

@genProvider
class UserViewModel extends ViewModel {
  final UserRepository repo;
  UserViewModel(this.repo);
}

Generates:

final userViewModelProvider = ViewModelProvider.arg1<UserViewModel, UserRepository>(
  builder: (UserRepository repo) => UserViewModel(repo),
);
0
likes
0
points
458
downloads

Publisher

unverified uploader

Weekly Downloads

Automatically generate ViewModelProvider code from @genProvider annotations. Reduces boilerplate for the view_model package.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

analyzer, build, source_gen, view_model_annotation

More

Packages that depend on view_model_generator