mirror of
https://github.com/pese-git/cherrypick.git
synced 2026-01-24 05:25:19 +00:00
feat: implement generator di module
This commit is contained in:
@@ -1,21 +1,20 @@
|
||||
import 'package:cherrypick_annotations/cherrypick_annotations.dart';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:cherrypick/cherrypick.dart';
|
||||
import '../data/network/json_placeholder_api.dart';
|
||||
import '../data/post_repository_impl.dart';
|
||||
import '../domain/repository/post_repository.dart';
|
||||
|
||||
class AppModule extends Module {
|
||||
@override
|
||||
void builder(Scope currentScope) {
|
||||
bind<Dio>().toProvide(() => Dio()).singleton();
|
||||
part 'app_module.cherrypick.g.dart';
|
||||
|
||||
bind<JsonPlaceholderApi>()
|
||||
.toProvide(() => JsonPlaceholderApi(currentScope.resolve<Dio>()))
|
||||
.singleton();
|
||||
@module()
|
||||
abstract class AppModule extends Module {
|
||||
@singleton()
|
||||
Dio dio() => Dio();
|
||||
|
||||
bind<PostRepository>()
|
||||
.toProvide(() =>
|
||||
PostRepositoryImpl(currentScope.resolve<JsonPlaceholderApi>()))
|
||||
.singleton();
|
||||
}
|
||||
@singleton()
|
||||
JsonPlaceholderApi api(Dio dio) => JsonPlaceholderApi(dio);
|
||||
|
||||
@singleton()
|
||||
PostRepository repo(JsonPlaceholderApi api) => PostRepositoryImpl(api);
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@ import 'router/app_router.dart';
|
||||
|
||||
void main() {
|
||||
final scope = CherryPick.openRootScope();
|
||||
scope.installModules([AppModule()]);
|
||||
scope.installModules([$AppModule()]);
|
||||
|
||||
runApp(MyApp(scope: scope));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user